解题思路:我们可以把所要算的Tom数的位数存于一个数组里,后面在把数组里的数相加就得到我们要算的Tom数了
注意事项:注意定义变量的类型,防止溢出
参考代码:
#include<stdio.h>
//注意定义变量的类型
long long a;//定义一个全局变量a(Tom数)
long b[1000]={0};//定义全局数组存Tom数的每个位数
long f_2()//计算a的位数返回到n
{
long n=0,b=1;
for(int i=1;i<a;i++,b*=10)
{
if(a/b) n++;
else return n;
}
}
long f_3(long n)//把a中各个位的数存到数组b中
{
int x=0,k=1;
for(int j=0;j<n;j++,k*=10)
{
b[j]=a/k%10;
}
}
long f_4(long n)//计算b数组中的和并存在sum中
{
long sum=0;
for(int i=0;i<n;i++)
{
sum+=b[i];
}
return sum;
}
int main()
{
long n,sum;
while(scanf("%lld",&a)!=EOF)
{
if(a!=0)
{
n=f_2();
f_3(n);
sum=f_4(n);
printf("%ld\n",sum);
}
if(a==0) break;
}
return 0;
}
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复