ACM 9の剰余

1020 ワード

9で割る、整除できる数には、数位加算、さらに9で整除、あるいは数位加算結果を加算、最後まで9を得ることができるという特徴がある.例えば、6255、6+2+5+5=18、1+8=9または:62+55=117、1+1+7=9または625+5=630、6+3+0=9であるため、原式の合計:1+2+3+4+5+6......+1998+1999=(1+1999)*2000/2=200000,000,000,000,000,000桁を加算して2となり、9より7小さいため、+7は9で除算され、残りは2と判断される.原式では余数を2と断定できる.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
	int a ;
	cin>>a;
	string s;
	vector<string> coll;
	vector<int> jieguo;
	for (int i =0; i< a; i++)
	{
		cin>>s;
		coll.push_back(s);
	}
	
	for (vector<string>::iterator index = coll.begin(); index != coll.end(); index++)
    {
		s = *index;
		int sum = 0;
		int yushu ;

		for (int i = 0; i != s.length(); i++)
		{
			sum += s.at(i) - '0';
		}
		yushu = sum%9;
		jieguo.push_back(yushu);
	}
	for (vector<int>::iterator iter = jieguo.begin(); iter != jieguo.end(); iter++)
	{
		cout<<*iter<<endl;
	}
	return 0;
}