首页 > 技术文章 > 基本操作之try-catch

techgy 2020-03-14 10:42 原文

简单介绍一下try-catch:

异常捕获语法:

try{

  可能出错的代码

}catch{

  如果出错,如何处理的代码

}

 

蓝桥杯算法题:n的阶乘

问题描述
  输入一个正整数n,输出n!的值。
  其中n!=1*2*3*…*n。
算法描述
  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。
  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。
输入格式
  输入包含一个正整数n,n<=1000。
输出格式
  输出n!的准确值。
样例输入
10
样例输出
3628800

 1 import java.util.ArrayList;
 2 import java.util.Scanner;
 3 
 4 public class Main {
 5     public static void main(String args[]){
 6         Scanner sc = new Scanner(System.in);
 7         int n = sc.nextInt();
 8         f(n);
 9     }
10     
11     private static void f(int n){
12         ArrayList<Integer> A = new ArrayList<Integer>();
13         A.add(1);
14         for(int i=2;i<n+1;i++){
15             int book = 0;
16             for(int j=0;j<A.size();j++){
17                 int temp = A.get(j)*i+book;
18                 A.set(j, temp%10);
19                 book = temp/10;
20                 if(book>0){
21                     try{
22                         A.get(j+1);
23                     }catch (Exception e) {
24                         A.add(j+1,0);
25                     }
26                 }
27             }
28         }
29         for(int i=A.size()-1;i>=0;i--){
30             System.out.print(A.get(i));
31         }
32     }
33 }

 

推荐阅读