JAVA阶乘
解决时间 2021-04-30 17:59
- 提问者网友:我的未来我做主
- 2021-04-30 12:39
public class jiecheng {
public static void main(String args[]) {
long a, u, b;
u = 1;
b = 0;
String str = null;
for (a = 1; a <= 20; a++) {
u = u * a;
b = b + u;
if (a == 1) {
str = a + "!";
} else {
str = str + "+" + a + "!";
}
System.out.println(str + "=" + b);
}
}
}
写出注释就行
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-04-30 13:09
public class jiecheng {
public static void main(String args[]) {
long a, u, b;//定义三个变量,分别名为a,u,b
u = 1;//u初始1
b = 0;//b初始0
String str = null;//定义一个名为str的字符串变量初始为空
for (a = 1; a <= 20; a++) {//让a变量从1变到20
u = u * a;//算出当前a所存值的价乘
b = b + u;//把这个数加到变量b中去
if (a == 1) {
str = a + "!";//判断当前a的值,是1的话前str的值为1!
} else {
str = str + "+" + a + "!";//如果不是1则把str内的值为上当前a的值再加上!(阶乘符号)赋给str变量
}
System.out.println(str + "=" + b);//输出当前str的值
}
}
}//所以最后输出结果为
//
1!=1
1!+2!=3
1!+2!+3!=9
1!+2!+3!+4!=33
1!+2!+3!+4!+5!=153
1!+2!+3!+4!+5!+6!=873
1!+2!+3!+4!+5!+6!+7!=5913
1!+2!+3!+4!+5!+6!+7!+8!=46233
1!+2!+3!+4!+5!+6!+7!+8!+9!=409113
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=4037913
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!=43954713
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!=522956313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!=6749977113
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!=93928268313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!=1401602636313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!=22324392524313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!=378011820620313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!=6780385526348313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!=128425485935180313
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2561327494111820313
全部回答
- 1楼网友:西岸风
- 2021-04-30 15:44
public class jiecheng {
public static void main(String args[]) {
long a, u, b; //定义变量
u = 1;
b = 0; // u=1 b=0
String str = null;
for (a = 1; a <= 20; a++) {
u = u * a; //循环算出阶乘的值
b = b + u;
if (a == 1) {
str = a + "!"; //如果是1就打出 1!
} else {
str = str + "+" + a + "!"; //分别输出 1!+2!+。。。。
}
System.out.println(str + "=" + b); //结果打出 1!+2!+...+20!=所算出的b的值。
}
}
}
- 2楼网友:三千妖杀
- 2021-04-30 15:09
晕
用递归啊
int chengjie(int i){
if(i==1) return 1;
else if(i>1){ return chengjie(i-1)*i;
else {System.out.println("this cna't number a ");]
}
}
- 3楼网友:轮獄道
- 2021-04-30 13:54
public static void main(String[] args) {
// TODO Auto-generated method stub
long a, u, b;//定义了三个long类型的变量
u = 1;//初始化u=1
b = 0;//初始化b=0
String str = null;//定一个string类型的str为null
for (a = 1; a <= 20; a++) {//a=1 a小于等于20 那么就是循环20次 a的值是从1-20
u = u * a;//当a=1时 u = 1*1 当a=2时 u=1*2 当a=3时 u=2*3依次类推到a=20
b = b + u;// 其实就是累加u 这样的算法不是阶乘吧 上面的那个u最终已经是阶乘的结果了
if (a == 1) {//当a==1的时候
str = a + "!";//字符串str = 这个 条件是a==1
} else {//
str = str + "+" + a + "!";//否则str=原来的str+这个 字符串连接也就是在a=2--10的时候输出
}
}
System.out.println(str + "=" + b);//最后输出
}
我要举报
大家都在看
推荐资讯