JAVA编程:计算1!+2!+3!+…+n!。 要求:(1)n值由键盘输入,n的值不超过10 (2)处理可能发生的异常。

如题,是JAVA编程... 如题,是JAVA编程 展开
 我来答
我只写了六年
推荐于2018-04-05 · TA获得超过445个赞
知道小有建树答主
回答量:72
采纳率:100%
帮助的人:37.1万
展开全部
//搞定
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入不超过10的正整数:");
while(true){
int n = sc.nextInt();
if(n<1||n>10){
System.out.println("输入不合法,请输入不超过10的正整数:");
}else{
int s = add(n);
System.out.println("1到"+n+"的阶乘的和为:"+s);
break;
}
}
}
//计算1~n的阶乘的和
public static int add(int n){
int sum = 0;
while(n>0){
sum= sum+fac(n);
n--;
}
return sum;
}
//计算n的阶乘
public static int fac(int num){
if(num==1){
return 1;
}else{
return num*fac(num-1);
}
}
}

 //计算n的阶乘还可以用循环可以写成这样:

public static int test(int num){

    int result  =  1;

    while(num>0){

        result = result*num;

        num--;

    }

    return result;

}

那个好懂用哪个

库尔买买提
2015-01-17 · TA获得超过229个赞
知道小有建树答主
回答量:345
采纳率:100%
帮助的人:140万
展开全部
递归调用求10以下的阶乘,给你个能直接运行的例子:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class digui {
public int sum = 0;
public String shuruStr;
public int shuruNum;

public void init() {
try {
do {
System.out.println("---请输入0-10之内的整数!---\t");
BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
shuruStr = strin.readLine();
shuruNum = Integer.parseInt(shuruStr);
} while (shuruNum > 10 || shuruNum <= 0 );
System.out.println("输入的数是:" + shuruNum);
diguiDy(shuruNum);
System.out.println("递归相乘的总和为:"+ sum);
} catch (IOException e) {
e.printStackTrace();
}
}

public int diguiDy(int var) {
if (var == 1) {
return sum += 1;
}
sum += (var - 1) * var;
diguiDy(var -1);
return sum;
}

public static void main(String[] args) {
new digui().init();
}
}

如果对回答满意,请点【采纳答案】,如果还有问题,请点【追问】

希望我的回答对您有所帮助,希望能采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
回忆的呻吟
2015-01-17 · TA获得超过155个赞
知道小有建树答主
回答量:162
采纳率:50%
帮助的人:68.6万
展开全部
import java.util.*;
public class Text{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int i = 1;
int j = 1;
int z = 0;
System.out.println("请输入一个数:");
int end = in.nextInt();
for(;i <= end;i ++)
{
j *= i;
z += j;
}
System.out.print("1!+"+"…+"+end+"!");
System.out.println("= "+z);
}
}
// int
// sum=0;
追问
复制粘贴有意思吗?你都没看清楚我的问题要求啊亲
追答
在输入的地方加一个if按断语句就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式