中易网

C++中如何计算任何一个正整数的各位数字之和?

答案:4  悬赏:0  
解决时间 2021-04-21 18:06
C++中如何计算任何一个正整数的各位数字之和?
最佳答案
【解题思路】
取得一个正整数各位数字之和,首先就是要分离出各位上的数字。可以通过取余运算符(%)和除号(/)来完成,具体的思路如下:比如要求123这个整数各位数字的和。
第一步是先将123除以10取余数,得到3;
第二步是把123除10取整得到12,然后再把12除10取余得到2;
第三步是把12除10取整得到1,然后再把1除10取余得到1,
然后一直重复,直到原来的那个数为零。这个过程中实现累计就可以了,具体的代码如下:

【程序代码】
#include <iostream>                    //控制台操作头文件

int main()                             //主函数
{int A,B,C,i;                          //变量声明
 do{printf("请输入一个数字(0退出):");  //提示输入数字
    scanf("%d",&A);                    //从键盘输入数字赋值给A
    C=A;                               //让C等于A的值
    B=C%10;                            //让B等于C除以10取余数
    while(C=C/10) B=B+C%10;            //用循环取出各位数字并累加
    printf("%d各位数之和是%d\n\n",A,B);//显示各位数和的结果
    }while(A);
 system("PAUSE");                      //屏幕暂停,以便看到显示结果
 return 0;                             //结束程序
}

【运行结果】
以上程序在DEV  C++中运行通过


全部回答
#include <iostream>using namespace std;void main() { int a; int sum=0; cout << "输入一个正整数:"; cin >> a; while(a) { sum = sum + a%10; a = a/10; } cout << "各位之和为:"<<sum;}在VC2005下调试通过
除法的效率是比较低的,我这里用了一个取巧的方法,是用字符串。#include <stdio.h> #define N 80void main() { char ch[N]; int i=0; int sum=0; printf("Please input a number:\n"); scanf("%s",ch); while(ch[i]!='\0') { sum+=ch[i]-48; i++; } printf("SUM is %d\n",sum); }
用循环,先计算整数位数然后用整除求余方法,再求和即可...不难的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
危地马拉首都?
偏关县房产买卖合同在哪里能公证?详细一点说
游戏机打码怎么解码
“鬼火”是什么来的?
qq聊天里面聊天像ok手势是什么意思
我昨天考的科三可是没签成绩单,对我拿本有影
五金电料建筑工具在什么地方啊,我要过去处理
人口总数居世界前三位的国家是(  )A.中
用鲜芦荟涂脸有什么效果,去痘吗?
河北省衡水市武邑县龙店乡王枣园村邮编是什么
未来两年吴江房价会赶上苏州吗?
向日葵种子要去哪里弄。
峨眉沃尔玛商铺怎么样,最低投资多少?
中大科技养生中心
兴隆场村地址在什么地方,我要处理点事
推荐资讯
苏州晚上孩子去哪里玩
我该相信自己的眼睛, 还是相信自己的心?
胸部有点痒和痛
关于面试的问题
在莆田职业技术学校读完中专后可以考厦门或福
如何设置Excel日期只显示日月格式
给我的 孩子起个名字?
我的世界手机版狼不听话了。顺便问一下手机版
n72保护膜上面的字迹
西王玉米胚芽油怎么样
中国银行24小时自助银行(敦化支行营业部)地址
洗胃后胃管拔到一半时突然拔不动了,为什么会
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?