Digital Roots
题目:
24的根:2+4=6
39的根:3+9=12;1+2=3
当输入0时,结束运行。
input: 24
39
0
output: 6
3
分析:
1.把输入的字符串转换成数字:n+=a[i]-'0'。
2.只要sum>9,则不断执行:sum+=n%10;n/=10;
代码1:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char a[1000];
int i,j,sum,n;
while(cin>>a){
sum=0;
n=0;
if(strcmp(a,"0")==0) break;
int len=strlen(a);
for(i=0;i<len;i++){
n+=a[i]-'0';
}
do{
while(n){
sum+=n%10;
n/=10;
}
n=sum;
}while(n>9);
cout<<sum<<endl;
}
return 0;
}
代码2:
大神说这题其实是对9取模,。。
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n=0,i;
char s[1000];
while(cin>>s){
if(strcmp(s,"0")==0) break;
int len=strlen(s);
for(i=0;i<len;i++) n+=s[i]-'0';
while(n>9){
n%=9;
}
if(n==0)
cout<<"9"<<endl;
else{
cout<<n<<endl;
n=0;
}
}
return 0;
}