数字根(Digital Root)是自然数的一种性质,换句话说,每个自然数都有一个数根。
数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相加直到其值小于十为止。即将一数字重复做数字和,直到其值小于十为止,则所得的值为该数的数根。例如54817的数根为7,因为5+4+8+1+7=25,25大于10则再加一次,2+5=7,7小于十,则7为54817的数根。
数根的一个性质:x+9与x的数根相同,即一个数加9后它的数根不变。
公式法求数根:a的数根b = a % 9
#include <iostream> using namespace std; int main() { char str[1001]; while(cin>>str) { if(str[0]=='0') break; int sum=0; for(int i=0;str[i]!='\0';i++) { sum+=str[i]-'0'; } sum=(sum-1)%9+1; cout<<sum<<endl; } return 0; }
文章评论