整数拆分
Description
输入一个正整数N(不超过一百位),如果N是偶数,则拆分N的各个数字相加求和;如果N是奇数,则拆分N的各个数字相乘求积。
Input
一个整数n(n<1*10^100)
Output
输出对应字母和计算结果n
Sample Input 1
126
Sample Output 1
H=9
Sample Input 2
123
Sample Output 2
J=6
Hint
输入偶数,应当求和,所以用H=整数来表示(H是和的拼音首字母,等号后面接上计算的结果)
输入奇数,应当求积,所以用J=整数来表示(J是积的拼音首字母,等号后面接上计算的结果)
注意审题,是不超过100位的整数数字。
Source
2009年合肥市蜀山区小学生信息学竞赛试题(精简版)
#include <iostream>
#include <cstring>
using namespace std;
char chArr[101];
int main(){
long long sum=0;
long ji=1;
scanf("%s",chArr);
int length = strlen(chArr);
int i=0;
if((chArr[length-1] == '0') || (chArr[length-1] == '2') || (chArr[length-1] == '4') || (chArr[length-1] == '6')
|| (chArr[length-1] == '8')){
while(i<length){
sum += (chArr[i]-'0');
i++;
}
printf("H=%lld",sum);
}
else{
while(i<length){
ji *= (chArr[i]-'0');
i++;
}
printf("J=%lld",ji);
}
return 0;
}