public class DDD {
public static void main(String[] args) {
Systemoutprint("请输入一个正整数(1~10)");
Scanner sc=new Scanner(Systemin);
int n=scnextInt();
if(n<1 || n>10){
Systemoutprintln("无效数据!");
return;
}
Systemoutprint(n+"!=");
int result=1;
for(int i=1;i<=n;i++){
result=resulti;
if(i==n)
Systemoutprint(i+"=");
else
Systemoutprint(i+"x");
}
Systemoutprint(result);
}
}
运行结果
请输入一个正整数(1~10)4
4!=1x2x3x4=24
public static void main(String[] args) {
int sum = 0;
int subSum = 1;
for (int i = 1; i <= 20; i++) {
subSum = i;
Systemoutprintln(i + "的阶乘: " + subSum);
sum += subSum;
}
Systemoutprintln("总和为: " + sum);
}
运行结果:
1的阶乘: 1
2的阶乘: 2
3的阶乘: 6
4的阶乘: 24
5的阶乘: 120
6的阶乘: 720
7的阶乘: 5040
8的阶乘: 40320
9的阶乘: 362880
10的阶乘: 3628800
11的阶乘: 39916800
12的阶乘: 479001600
13的阶乘: 1932053504
14的阶乘: 1278945280
15的阶乘: 2004310016
16的阶乘: 2004189184
17的阶乘: -288522240
18的阶乘: -898433024
19的阶乘: 109641728
20的阶乘: -2102132736
总和为: 268040729
请注意,从 "17的阶乘: -288522240" 开始,后面阶乘已经超出整数最值了,所以需要改成使用long类型来保存
正确程序如下:
public static void main(String[] args) {
long sum = 0;
long subSum = 1;
for (long i = 1; i <= 20; i++) {
subSum = i;
Systemoutprintln(i + "的阶乘: " + subSum);
sum += subSum;
}
Systemoutprintln("总和为: " + sum);
}
正确程序结果:
1的阶乘: 1
2的阶乘: 2
3的阶乘: 6
4的阶乘: 24
5的阶乘: 120
6的阶乘: 720
7的阶乘: 5040
8的阶乘: 40320
9的阶乘: 362880
10的阶乘: 3628800
11的阶乘: 39916800
12的阶乘: 479001600
13的阶乘: 6227020800
14的阶乘: 87178291200
15的阶乘: 1307674368000
16的阶乘: 20922789888000
17的阶乘: 355687428096000
18的阶乘: 6402373705728000
19的阶乘: 121645100408832000
20的阶乘: 2432902008176640000
总和为: 2561327494111820313
很简单的算法哈:你这个4 = 1 2 3 4 = 24 这个不叫阶乘噢,不过实现很简单代码还是自己动手吧,对你有好处
2:
以上就是关于编写Java程序,实现接受用户输入的正整数,输出该数的阶乘。例如,输全部的内容,包括:编写Java程序,实现接受用户输入的正整数,输出该数的阶乘。例如,输、如题:编写一道JAVA阶成程序、java输出阶乘过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)