平安智慧城市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);
		}
	}

}

 

你可能感兴趣的:(面试+笔试)