不难发现每十个数的和的个位数为7,这样结果就只与数的最后两位有关了。然后,个位数对结果的影响以十位数的奇偶分两种情况。这样,结果就出来了。
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int a1[]={0,1,5,2,8,3,9,2,8,7};
int a2[]={0,1,7,0,6,1,7,4,8,7};
int main()
{
string s;
while(cin>>s)
{
if(s.size()==1&&s[0]=='0') break;
if(s.size()==1)
{
cout<<a1[s[0]-'0']<<endl;continue;
}
int b=s[s.size()-2]-'0',c=s[s.size()-1]-'0';
cout<<(7*b+(b%2==0?a1[c]:a2[c]))%10<<endl;
}
return 0;
}