c语言题目,要方法就可以了,按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类.比如说24,2+4=6,则24的类
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/27 13:29:42
![c语言题目,要方法就可以了,按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类.比如说24,2+4=6,则24的类](/uploads/image/z/2095714-10-4.jpg?t=c%E8%AF%AD%E8%A8%80%E9%A2%98%E7%9B%AE%2C%E8%A6%81%E6%96%B9%E6%B3%95%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%2C%E6%8C%89%E7%85%A7%E4%B8%8B%E9%9D%A2%E6%96%B9%E6%B3%95%E5%AF%B9%E6%95%B4%E6%95%B0x%E8%BF%9B%E8%A1%8C%E5%88%86%E7%B1%BB%EF%BC%9A%E5%A6%82%E6%9E%9Cx%E6%98%AF%E4%B8%80%E4%B8%AA%E4%B8%AA%E4%BD%8D%E6%95%B0%2C%E5%88%99x%E5%B1%9E%E4%BA%8Ex%E7%B1%BB%EF%BC%9B%E5%90%A6%E5%88%99%E5%B0%86x%E7%9A%84%E5%90%84%E4%BD%8D%E4%B8%8A%E7%9A%84%E6%95%B0%E7%A0%81%E7%B4%AF%E5%8A%A0%2C%E5%BE%97%E5%88%B0%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84x%2C%E4%BE%9D%E6%AC%A1%E8%BF%AD%E4%BB%A3%2C%E5%8F%AF%E4%BB%A5%E5%BE%97%E5%88%B0x%E7%9A%84%E6%89%80%E5%B1%9E%E7%B1%BB.%E6%AF%94%E5%A6%82%E8%AF%B424%2C2%2B4%3D6%2C%E5%88%9924%E7%9A%84%E7%B1%BB)
c语言题目,要方法就可以了,按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类.比如说24,2+4=6,则24的类
c语言题目,要方法就可以了,
按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类.比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3.
输入
每行输入一个非负整数n,n的位数
c语言题目,要方法就可以了,按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类.比如说24,2+4=6,则24的类
#include <stdio.h>
int main()
{
char str[500];
char *cp;
int sum, sum2;
while(scanf("%s", str)!=EOF)
{
cp = str;
sum = sum2 = 0;
if(*cp=='0' && *(cp+1)=='\0')
break;
while(*cp != '\0')
{
sum += *cp-'0';
cp++;
}
while(sum>9)
{
sum2 += sum%10;
sum /= 10;
if(sum<10)
{
sum2 += sum;
sum = sum2;
sum2 = 0;
}
}
printf("%d\n", sum);
}
return 0;
}
更简单的版本:
#include <stdio.h>
int main()
{
char str[500];
char *cp;
int sum, sum2;
while(scanf("%s", str)!=EOF)
{
cp = str;
sum = sum2 = 0;
if(*cp=='0' && *(cp+1)=='\0')
break;
while(*cp != '\0')
{
sum += *cp-'0';
if(sum>9)
sum = sum%10 + sum/10;
cp++;
}
printf("%d\n", sum);
}
return 0;
}
声明一个512个char的数组:char str[512]用于存储读入的数据,即首先存储成字符串;
while(scanf("%s", str)!=EOF)
然后检查str[0]=='0'&&str[1]=='\0',如果是则结束----接收到0了;
否则 提取字符串中个各位 str[i]-'0', 然后相加得到一个整数sum,最大为500*9=4500,所以int就够用了;
然后再判断sum是否大于10,是则循环取其各位, while(sum>9) {sum2 += sum%10; sum/=10}直到最终结果在10以内,输出,继续输入下一个数据