题干:
描述
输入一个正整数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