//求5的阶乘(5!=54321)
int num=1;
for(int a=1;a<=5;a++){
num=a;
}Systemoutprintln("五的阶乘为:"+num);
}import javautilScanner;
public class Test {
public static void main(String[] args) {
long sum=1;
Scanner sin = new Scanner(Systemin);
Systemoutprint("请输入一个数字:");
int s = sinnextInt();
for(int i=1;i<=s;i++){
sum=sumi;
}
Systemoutprintln(s+"的阶乘为:"+sum);
}
}
,谢谢!楼主这个程序错的一塌糊涂
都错在基础知识上。
稍等一下,我帮你改,再额外给你一个求阶乘的方法
import javautilScanner;
import javamathBigInteger;
public class Outer {
public static void main(String[] args) {
int n;
//用dowhile循环 当输入为0时,退出
do {
//从控制台获取一整数(包括20)
n = new Scanner(Systemin)nextInt();
//把int转化成BigInteger类型
BigInteger result = BigIntegervalueOf(1);
//利用循环求出n!
for(int i = 2; i <= n; i++) {
BigInteger b1 = BigIntegervalueOf(i);
result = resultmultiply(b1);
}
Systemoutprintln(result);
} while(n != 0);
}
}
方法二:用递归
import javautilScanner;
public class Test{
public static void main(String[] args) {
int input = new Scanner(Systemin)nextInt();
int result = DiGui(input);
Systemoutprintln(result);
}
//用递归求阶乘
public static int DiGui(int n) {
if(n == 1) {
return 1;
}
return n DiGui(n - 1);
}
}public class Myjiecheng {
public static void main(String[] args) {
String s=JOptionPaneshowInputDialog("请输入你要求几的阶乘:");
if(s!=null && slength()>0){
try{
int n=IntegerparseInt(s);
int sum=1;
for(int i=1;i<=n;i++){
sum=sumi;
}
JOptionPaneshowMessageDialog(null, n+"的阶乘是"+sum);
}catch(Exception e){
JOptionPaneshowMessageDialog(null, "输入的不是数字");
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)