14年上机题
第一题,阶乘数。输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超出int型的表示范围。
输入样例1:
145
输出样例1:
145,1!+4!+5!=145
Yes
输入样例2:
1400
输出样例2:
1400,1!+4!+0!+0!=27
No
用java写的。
import java.util.*;
public class test{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int num = s.nextInt();
char[] chars=String.valueOf(num).toCharArray();
int[] nums=new int[chars.length];
for(int j=0;j<chars.length;j++){
nums[j]=chars[j]-'0';
}
int result=0;
System.out.print(num+",");
for(int i=0;i<nums.length;i++){
result+=GetJiecheng(nums[i]);
if(i<nums.length-1){
System.out.print(nums[i]+"!");
System.out.print("+");
}
else{
System.out.println(nums[i]+"!="+num);
}
}
if(result==num){
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
public static int GetJiecheng(int a){
int result=1;
for(int i=1;i<a+1;i++){
result=result*i;
}
return result;
}
}