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<stdio.h>
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时的讨论!
此题为数组初级题

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值