xtu--1055整数分类

题目
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
int main()
{
char a[500];//用字符,可以将这500位分别表示为数的从个位到500位(每个数码)
while(scanf("%s",&a),a[0]!=‘0’)//第一个数码不为0进行
{
int i=0,b=0;
while(a[i]!=’\0’)//表示该数每个数码进行完后停止循环
{
b+=a[i]-‘0’;
i++;
}
int c=0;
while(b>0)
{
c+=b%10;
b/=10;//将b的数码相加后赋给c
if(c>9&&b==0)//对特殊情况讨论
{
b=c;
c=0;
}
}
printf("%d\n",c);
}
}
该题用字符类型更简单,思路是讲数组中的每个数代表输入数值的每个数码,然后进行数码的初步相加超过10后进行下一步循环将b取余和/之后的值赋给c然后输出
注意对c大于9时的讨论!
此题为数组初级题

你可能感兴趣的:(笔记)