第一题 阶乘数
输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超出int型的表示范围。
输入样例1:
145
输出样例1:
145,1!+4!+5!=145
Yes
输入样例2:
1400
输出样例2:
1400,1!+4!+0!+0!=27
No
#include<stdio.h>
//阶乘函数
int mutiply(int x){
if(x==0) return 1;
int result=1;
for(int i=x;i>=1;i--){
result*=i;
}
return result;
}
int main(){
int n;
while(scanf("%d", &n)!=EOF){
if(n==0){
printf("0,0!=1\nNo\n");
continue;
}
//sum:阶乘之和,ret保存n的各位数字
int sum=0, i=0, x, ret[10], input=n;
while(n!=0){
ret[i++]=x=n%10;
n/=10;
sum+=mutiply(x);
}
printf("%d,",input);
//按照位数从高到低输出
for(x=i-1;x>0;x--){
printf("%d!+",ret[x]);
}
//个位数特殊
printf("%d!=%d\n",ret[0],sum);
if(sum==input){
printf("Yes\n");
}else{
printf("No\n");
}
}
return 0;
}
第二题 五子棋
输入一个19*19的矩阵ÿ