NPSC補完計劃

登入註冊帳號.

請輸入帳號, 密碼以及預計登入時間
進階搜尋  

最新消息:

歡迎光臨NPSC補完計劃

+ NPSC補完計劃 » NPSC國中組 » NPSC2007國中組初賽
 [C++] 2007 NPSC 國中組初賽 F. 鬧鐘

作者 主題: [C++] 2007 NPSC 國中組初賽 F. 鬧鐘  (閱讀 1894 次)

bleed1979

  • 初級會員
  • **
  • 文章數: 28
    • 檢視個人資料
[C++] 2007 NPSC 國中組初賽 F. 鬧鐘
« 於: 七月 18, 2010, 08:46:48 am »

本題同ZJ的b079。

題目目的︰根據題目給定的數學式,計算任意n ( 最大一百萬 ) 時,數學式所求得的值。

解題技巧︰如果每次都要跑n次計算就太慢了。將所有值預先計算存在陣列裡。

代碼: [選擇]
//  C++, ZJ b079, NPSC 2007 F. junior first

#include <cstdio>

#define SIZE  1000001

int A[SIZE];

int main ()
{
  A[ 1 ] = A[ 2 ] = 1;
  for ( int i = 3; i != SIZE; ++i )
    A[ i ] = A[ i - A[ i - 1 ] ] + A[ i - 1 - A[ i - 2 ] ];
   
  int n;
 
  while ( ~ scanf ( "%d", &n ) && n )
  {
    printf ( "%d\n", A[ n ] );
  }
 
  return ( 0 );
}
記錄
+ NPSC補完計劃 » NPSC國中組 » NPSC2007國中組初賽
 [C++] 2007 NPSC 國中組初賽 F. 鬧鐘