用Java迭代的方式实现阶乘的和
答案:3 悬赏:50 手机版
解决时间 2021-02-23 18:39
- 提问者网友:低吟詩仙的傷
- 2021-02-22 19:53
用Java迭代的方式实现阶乘的和
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-02-22 20:05
public static void main(String[] args) {
System.out.println(jiecheng(4));
}
public static int jiecheng(int n){
if(n == 1){
return 1;
}
int a = 1;
for(int i = n;i>1;i--){
a *=i;
}
return a+jiecheng(n-1);
}
System.out.println(jiecheng(4));
}
public static int jiecheng(int n){
if(n == 1){
return 1;
}
int a = 1;
for(int i = n;i>1;i--){
a *=i;
}
return a+jiecheng(n-1);
}
全部回答
- 1楼网友:第四晚心情
- 2021-02-22 22:33
public static int factorial(int param){
if (param == 1){
return 1;
}
return param+factorial(param-1);
}
public static void main(String[] args) {
System.out.println(factorial(4));
}
//用递归实现的追问大哥你这个是从1加到n吧。。
我这题目是阶乘,然后相加。追答你把那个加好改成乘不就好了?
public static int factorial(int param){
if (param == 1){
return 1;
}
return param*factorial(param-1);
}追问额,你这样只是实现了n!
我想要的是n!+(n-1)!+...2!追答好吧,不是很明白这题目什么意思。
楼下的那个貌似已经解决你的问题了。追问貌似是唉,谢谢!
if (param == 1){
return 1;
}
return param+factorial(param-1);
}
public static void main(String[] args) {
System.out.println(factorial(4));
}
//用递归实现的追问大哥你这个是从1加到n吧。。
我这题目是阶乘,然后相加。追答你把那个加好改成乘不就好了?
public static int factorial(int param){
if (param == 1){
return 1;
}
return param*factorial(param-1);
}追问额,你这样只是实现了n!
我想要的是n!+(n-1)!+...2!追答好吧,不是很明白这题目什么意思。
楼下的那个貌似已经解决你的问题了。追问貌似是唉,谢谢!
- 2楼网友:蕴藏春秋
- 2021-02-22 21:31
public class test {
public static int fact(int x) {
int result = 1;
while (x > 0) {
result *= x;
x--;
}
return result;
}
public static int factSum(int x) {
int resultSum = 0;
for (int i = 1; i <= x; i++) {
int tmpSum = fact(i);
resultSum += tmpSum;
}
return resultSum;
}
public static void main(String[] args) {
System.out.print(factSum(4));
}
}
感觉你的问题没有说清楚啊,你是想输入4然后返回1!+2!+3!+4!.的结果吗?还是?如果是前者就是我的代码了。
追问写个通用的方法就行,至于怎么调用都无所谓。
另外你这个写的是递归的方法吧,我想的是怎样写个迭代的方法。追答我这是递归。。。我哪一步递归调用了。。。你可以把你写好的递归代码贴出来,我帮你换成迭代的,还是不清楚你要的是怎么样的一个和
public static int fact(int x) {
int result = 1;
while (x > 0) {
result *= x;
x--;
}
return result;
}
public static int factSum(int x) {
int resultSum = 0;
for (int i = 1; i <= x; i++) {
int tmpSum = fact(i);
resultSum += tmpSum;
}
return resultSum;
}
public static void main(String[] args) {
System.out.print(factSum(4));
}
}
感觉你的问题没有说清楚啊,你是想输入4然后返回1!+2!+3!+4!.的结果吗?还是?如果是前者就是我的代码了。
追问写个通用的方法就行,至于怎么调用都无所谓。
另外你这个写的是递归的方法吧,我想的是怎样写个迭代的方法。追答我这是递归。。。我哪一步递归调用了。。。你可以把你写好的递归代码贴出来,我帮你换成迭代的,还是不清楚你要的是怎么样的一个和
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯