zoj 1115 Digital Roots
求各数位之和;
运用弃九法可以很快解出,但一开始没想到出入的会是字符串,WA了几次,
AC代码如下
#include"iostream" #include"string" using namespace std; int main() { string str; while(cin>>str,str!="0") { int n=0; for(string::size_type i=0;i!=str.size();i++) n+=str[i]-'0'; n%=9; if(n==0) n=9; cout<<n<<endl; } return 0; }
弃九法的扩展应用
k是n进制下的一个数,s是k各位数字之和,则存在k%(n-1)=s%(n-1);
利用同余的原理证明。