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;
}