原题链接:Tom数
解题思路:
输入一个整数;
求出每一位相加的和;
注意事项:
输入的整数小于2^32-1:不能时int型(2^31 -1) ,要比它长,用unsigned int等比它长的;
不要把问题想的太复杂,这题就是考察长整型变量,不要用字符串存数,控制不恰当的话,输出,会提示输出超过范围;
参考代码:
#include <stdio.h>
#include <string.h>
void put();
int TOM = 0;
unsigned int num = 0;
/*-------------------------*/
int main()
{
while ( (scanf( "%d", &num ) ) != EOF )
{
put();
}
}
/*-------------------------*/
void put()
{
TOM = 0;
while ( (num / 10) != 0 )
{
TOM += (num % 10);
num /= 10;
}
TOM += num;
printf( "%d\n", TOM );
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> void put(long num) { int tom; tom=0; while((num/10)!=0) { tom+=(num%10); num/=10; } tom+=num; printf("%d\n",tom); } int main(){ int tom=0; long num=0; while((scanf("%d",&num))!=EOF) { put(num); } return 0; }#include <stdio.h> int main() { unsigned int a; int tom = 0; while((scanf("%d", &a)) != EOF) { for(tom = 0; a / 10 != 0;) { tom += a%10; a /= 10; } tom += a; printf("%d\n", tom); } return 0; }