搜狐畅游笔试题Java工程师

一个公司从一个试用期员工到N个月后,有多少员工
下面是我做的,如果有问题求赐教
import java.util.Scanner;
import java.math.BigInteger;
import java.util.LinkedList;
import java.util.Queue;

public class Main {  public static void main(String[] args) {  Scanner in = new Scanner(System.in);  int n = in.nextInt();  System.out.println(solve(n));  in.close();  }  public static BigInteger solve(int n) {  BigInteger m1 = BigInteger.valueOf(0);  BigInteger m = BigInteger.valueOf(0);  BigInteger yes = BigInteger.valueOf(1);  Queue<BigInteger> queue = new LinkedList<BigInteger>();  if (n <= 3) {  return BigInteger.valueOf(1);  }  while (queue.size() < 3) {  queue.offer(m1);  }  while (n - 3 > 0) {  --n;  yes = yes.add(queue.poll());  queue.offer(yes);  }  while (!queue.isEmpty()) {  m = m.add(queue.poll());  }  return m.add(yes);  }
}

#搜狐##Java工程师#
全部评论
发帖格式不好看,下面我沙发再发一次,谢谢指导 import java.util.Scanner; import java.math.BigInteger; import java.util.LinkedList; import java.util.Queue; public class Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int n = in.nextInt();         System.out.println(solve(n));         in.close();     }     public static BigInteger solve(int n) {         BigInteger m1 = BigInteger.valueOf(0);         BigInteger m = BigInteger.valueOf(0);         BigInteger yes = BigInteger.valueOf(1);         Queue<BigInteger> queue = new LinkedList<BigInteger>();         if (n <= 3) {             return BigInteger.valueOf(1);         }         while (queue.size() < 3) {             queue.offer(m1);         }         while (n - 3 > 0) {             --n;             yes = yes.add(queue.poll());             queue.offer(yes);         }         while (!queue.isEmpty()) {             m = m.add(queue.poll());         }         return m.add(yes);     } }
点赞 回复 分享
发布于 2017-09-17 16:55
f(n)=f(n-1)+f(n-3)
点赞 回复 分享
发布于 2017-09-17 17:02
就是个fibonacci类似的数列 十行可以搞定了
点赞 回复 分享
发布于 2017-09-17 17:08
同畅游 问下状态大概多久会更新
点赞 回复 分享
发布于 2017-09-18 09:01

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务