题目
Description
按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。输入
每行输入一个非负整数n,n≤10500,n为0时结束。输出
每行输出对应整数的分类数。
Sample Input
24
39
0
Sample Output
6
3
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
string a;
// cin>>a;
while((cin>>a),(a[0]-'0')!=0){
int sum;
int i;
char s[1001];
while(a.length()>1){
sum=0;
for(i=0;i<a.length();i++){
sum+=a[i]-'0';
}
// printf("%d\n",sum);
sprintf(s,"%d",sum);
a=s;
// cout<<a<<"\n";
}
cout<<a<<"\n";
}
return 0;
}
思路:题目明确给出不能使用整数定义,因为数字可能会很大,因此可以使用string类型来做