高级守护
肿么写?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
高级守护
long long n;
cin>>n;
int sum=0;
while(n!=0)
{
sum+=n%10;
n/=10;
}
cout<<sum;
这是核心代码!
中级光能
核心代码(有注释):
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>
高级守护
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;
新手光能
long long n;
cin>>n;
int sum=0;
while(n!=0)
{
sum+=n%10;
n/=10;
}
cout<<sum;