五角形の大きさ

今日のお題

1辺がnドットの五角形の中に含まれるドット数を計算せよ。図は問題のページを参照。

回答

import java.util.*; 
import java.io.*;

class Main {  
  public static int PentagonalNumber(int num) { 
      if(num == 1){
          return 1;
      }else{
          return PentagonalNumber(num - 1) + 5 * num - 5;
      }
  } 
  
  public static void main (String[] args) {  
    // keep this function call here     
    Scanner s = new Scanner(System.in);
    System.out.print(PentagonalNumber(s.nextLine())); 
  }   
}

感想

Memorial Dayの休日でしばらく勉強をサボっていた。しっかり証明しようと思うと全く違う問題になるが、法則に気がついて数列を再帰(あるいは再帰なし)で書いてしまうのはとても簡単。