题干:
描述
输入一个正整数r(0<r<10),做r次下列运算:输入一个整数,输出它的位数及各位数之和。
输入
同上
输出
同上
输入样例 1
3 123456 -100 99
输出样例 1
number=6,sum=21 number=3,sum=1 number=2,sum=18
解题报告:
注意这题开longlong也是不够的,,因为没说整数有多大,所以用字符串读入这个整数并进行处理。
AC代码:
#include<cstdio>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<iostream>
#include<algorithm>
#define ll long long
const ll mod = 1e9+7;
using namespace std;
char s[1000005];
int main()
{
ll t;
cin>>t;
ll ans2 = 0,ans1;
while(t--) {
ans1 = ans2 = 0;
scanf("%s",s);
if(s[0] == '-') {
int len = strlen(s);
ans1 = len-1;
for(int i = 1; i<len; i++) {
ans2 += s[i] - '0';
}
printf("number=%lld,sum=%lld\n",ans1,ans2);
}
else {
int len = strlen(s);
ans1 = len;
for(int i = 0; i<len; i++) {
ans2 += s[i] - '0';
}
printf("number=%lld,sum=%lld\n",ans1,ans2);
}
}
return 0 ;
}
Share