编写程序(java):输入一个整数n,计算n的阶乘并捕捉可能出现的异常。

编写程序:输入一个整数n,计算n的阶乘并捕捉可能出现的异常。实验要求:(1)阶乘方法命名为factorial();(2)无论是否出现异常,最后都要能够显示:“Finish... 编写程序:输入一个整数n,计算n的阶乘并捕捉可能出现的异常。
实验要求:
(1)阶乘方法命名为factorial();
(2)无论是否出现异常,最后都要能够显示:“Finish computing factorial number.”。
(3)当输入的数大于20时,请显示的“数字过大,无法计算”的异常
展开
 我来答
love爱有缘
推荐于2017-12-16 · TA获得超过1041个赞
知道小有建树答主
回答量:789
采纳率:0%
帮助的人:694万
展开全部
import java.util.*; 
public class T {
    public static void main(String[] args){
       try{ 
           Scanner input = new Scanner(System.in); 
           String num = input.nextLine();
           if(!num.match("[^0]\\d+$")) {
               throw new RuntimeException("输入的不是自然数");
           } 
           if(Long.parseLong(num) >20) {
               throw new RuntimeException("数字过大,无法计算");   
            }
            long result = factorial(Long.parseLong(num)); 
            System.out.println(result); 
        }catch(Exception e){
            throw new RuntimeException(e);
        }finally{
            System.out.println("Finish computing factorial number"); 
        }
    } 
    /**计算阶乘**/
    public static long  factorial(long n) {
        if(n==1) return 1 ;  
        return n * factorial(n-1); 
    }  
}
dhweicheng
2014-11-06 · TA获得超过1155个赞
知道大有可为答主
回答量:3320
采纳率:55%
帮助的人:1066万
展开全部
import java.util.Scanner;
public class TestMax {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数");
int x = input.nextInt();
try {
if (x > 20)
throw new Exception("数字过大,无法计算");
factorial(x);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
} finally {
System.out.println("Finish computing factorial number");
}
}
public static void factorial(int n) {
int all = 1;
for (int i = 1; i < n + 1; i++) {
all *= i;
}
System.out.println(all);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式