我是靠谱客的博主 落后斑马,最近开发中收集的这篇文章主要介绍c语言 一个数的各个位相加,OJ题:输入一个多位的数字,求各数位相加。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目内容:

输入一个多位的数字,1求各数位相加。

例如输入12345,则计算1+2+3+4+5=15

输入格式:

一个整数

输出格式:

一个整数

输入样例:

1234567890

输出样例:

45

时间限制:500ms内存限制:32000kb

实现程序:

#include

#include

#include

int cnt_count(int value)

{

int count = 0 , cnt = 0 , n = 1 ;

while(value)

{

value /= 10 ;

count++ ;

}

//上面算法是为了求得计数值count有表示传进来的value有多少位

if(count == 1)

{

cnt = 0 ;

}

else

{

//相应的有多少为就按照规律去累乘

while(cnt < count - 1)

{

n *= 10 ;

cnt++ ;

}

}

return n ;//比如6位数,那么就返回100000,5位就返回10000,依次类推

}

int main(void)

{

int num , i , sum = 0 ;

int value = 0 , ret = 1;

int buffer[10] = {0};//定义空间为10的数组并清零

scanf("%d",&num);//输入一个数

value = num ;//将数赋值给变量value

for(i = 0 ; i < 10 ; i++){//循环十次

ret = cnt_count(value) ;//先通过cnt_count确定输入的数是几位数

buffer[i] += value / ret ; //取到这个数的最高位并将其存到buffer里去

value = value % ret ;//接下来屏蔽最高一位,例如输入12345,最高位为1,屏蔽完就为2345

sum+=buffer[i];//累加数组内的元素

}

printf("%d",sum);//输出累加结果

return 0 ;

}

本文同步分享在 博客“Engineer-Bruce_Yang”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

最后

以上就是落后斑马为你收集整理的c语言 一个数的各个位相加,OJ题:输入一个多位的数字,求各数位相加。的全部内容,希望文章能够帮你解决c语言 一个数的各个位相加,OJ题:输入一个多位的数字,求各数位相加。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部