除以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=2000000
数位相加为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;
}