1. 程式人生 > >平安智慧城市2019校園招聘-演算法工程師筆試題目

平安智慧城市2019校園招聘-演算法工程師筆試題目

1. 請求出 1 + 2! + 3! + 4!+ 5!+ ...... + 20!的和。

輸入:

沒有輸入。

輸出:

前20個數字階乘的和。

輸入樣例:

無輸入。

輸出樣例:

2561327494111820313

已經AC的程式碼:

import java.math.BigInteger;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(sum(20));
	}
	 
    public static BigInteger sum(int n){ 
        BigInteger sum = new BigInteger("0"); 
        if(n <= 1) 
        	return BigInteger.ONE; 
        for(int i=1; i<=n; i++){          
            sum = sum.add(n_fact(i)); 
        } 
        return sum; 
    } 
    
    public static BigInteger n_fact(int n){       
        if(n > 0){            
            return BigInteger.valueOf(n).multiply(n_fact(n-1)); 
        }else{      
            return BigInteger.ONE; 
        } 
    } 
}

2. 給你一行字串,其中帶有多個空格,請輸出這個字串最後一個單詞的長度。

 輸入:

一行字串,帶有多個空格。

輸出:

一個整數,最後一個單詞的長度。

樣例輸入:

hello world

樣例輸出:

5

已經AC的程式碼:


import java.util.Scanner;

public class Main2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String  strLin = sc.nextLine();
		String[] strArray = strLin.split(" ");
		if(strArray.length == 0) {
			System.out.println(0);
		}else {
			int len = strArray[strArray.length-1].length();
			System.out.println(len);
		}
	}

}