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

 我来答
czy7812
2017-07-03 · TA获得超过2670个赞
知道小有建树答主
回答量:518
采纳率:88%
帮助的人:189万
展开全部
【解题思路】
取得一个正整数各位数字之和,首先就是要分离出各位上的数字。可以通过取余运算符(%)和除号(/)来完成,具体的思路如下:比如要求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++中运行通过


匿名用户
推荐于2018-01-31
展开全部
#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下调试通过
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-22
展开全部
除法的效率是比较低的,我这里用了一个取巧的方法,是用字符串。#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);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-22
展开全部
用循环,先计算整数位数然后用整除求余方法,再求和即可...不难的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式