2020年3月4日 星期三

[zerojudge]a042. 平面圓形切割

a042. 平面圓形切割

平面圓形切割

    a0 = 1
    a1 = 2
    a2 = 4
    a3 = 8
    a4 = 14
    a5 = 22
    
an - an-1 = 2 * (n - 1), if n > 1
=> an = 2 * (n - 1) + an-1

寫成遞迴就OK了,也可以寫成公式
推導
an = n2 - n + 2, if n > 0

程式碼如下:

  1. /* a042. 平面圓形切割
  2. *
  3. * 2020/3/3
  4. */
  5.  
  6. import java.util.Scanner;
  7.  
  8. public class Pa042{
  9.  
  10. public static void main(String[] args){
  11. Scanner scanner = new Scanner(System.in);
  12.  
  13. while(scanner.hasNext()){
  14. System.out.println(circleCut(scanner.nextInt()));
  15. }
  16. }
  17.  
  18. public static int circleCut(int n){
  19. return n == 1? 2: 2 * (n - 1) + circleCut(n - 1);
  20. }
  21.  
  22. }

沒有留言:

張貼留言