问题标题: 1004!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-7
0
已解决
被禁言 鲍纪元
鲍纪元
高级守护
高级守护

肿么写?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????


1
已采纳
刘斐
刘斐
高级守护
高级守护
long long n;
    cin>>n;
    int sum=0;
    while(n!=0)
    {
        sum+=n%10;
        n/=10;
    }
    cout<<sum;

这是核心代码! 

1
夏天
夏天
中级守护
中级守护

while(n!=0) {
        a=n%10;
        n=(n-a)/10;
        s+=a;
    }

1
王梓澳
王梓澳
中级光能
中级光能

 核心代码(有注释):

    getline (cin,a);//输入字符串a
    for (int i=0;i<=a.size();i++)//循环把每一位转换成数字
    {
        b<<a[i];//转换
        b>>c2;
        b.clear();//清空
        h=h+c2;//累加
    }

注:a字符串要定义成string:

string a;
//需要头文件:#include <string>

    b转换变量要定义成stringstream:

stringstream b;
//需要头文件:#include <sstream>

头文件一共三个:

#include <iostream>
#include <string>
#include <sstream>

 

1
王紫馨
王紫馨
高级守护
高级守护

1004   求任意一个正整数的各位数字之和

题目描述 Description

任意输入一个正整数,求这个正整数的各位数字之和。如输入123,输出6。输入2340,输出9.输入1234567,输出28。

样例输入 Sample Input

 

【样例一输入】
123

【样例二输入】
2340

【样例三输入】
1234567

样例输出 Sample Output

 

【样例一输出】
6

【样例二输出】
9

【样例三输出】
28

 

 

本题可以用字符串做,也可以用整形做,这个答案是用一个整形变量解决的

1、为了保守起见,题目既然没有给出数据范围,我们就用long long类型,另外还要定义一个变量,用来累加各个数位之和

接着就是输入

long long n;//n为需累加各个数位之和的数
int ans=0;//ans是累加变量
cin>>n;//输入

2、用while循环解决核心程序

while(n!=0){//执行循环条件
    ans+=n%10;//累加n的个位数
    n/=10;//自除,为下一循环和执行条件作铺垫
}

3、输出

cout<<ans;

 

1
王子轩
王子轩
新手光能
新手光能

long long n;

 

cin>>n;

 

int sum=0;

 

while(n!=0)

 

{

 

sum+=n%10;

 

n/=10;

 

}

 

cout<<sum;

0
我要回答