2012年5月4日 星期五

數數愛明明

內容 :
數數是班上聰明又漂亮的女生,有一天……,她愛上了明明。
她對明明說:「我們的愛,若是錯誤,願你我沒有白白受苦。呃,不是,我們的愛就像是函數!」
明明說,「是啊,我對妳的愛是與日俱增呢!」
數數開心地說,「你的意思是,你在第 n 天對我的愛若用函數 f(n) 來描述,那麼,f(n) = n + f(n-1)。也就是說,每一天都比前一天多了一單位的愛,並且與舊的愛累積起來嗎?」
明明點了點頭,然後問,「那麼,妳呢?」
數數說,「我在第 n 天對你的愛若是 g(n),那 g(n) = f(n) + g(n-1)!」
於是,明明笑了笑,摟著數數說,我一定會更加愛妳的!
註:在第一天的時候,f(1) = g(1) = 1。 

輸入說明 :
輸入以 EOF 結束。每一筆測試資料有一個數字 n,其中 n > 0。 
此外,50% 的測資 n <= 500;80% 的測資,n <= 3000;全部的測資 n <= 30000。 

輸出說明 :
輸出 f(n) 與 g(n)。
範例輸入 :
1
2
3
5
8
13

範例輸出 :
1 1
3 4
6 10
15 35
36 120
91 455

4 則留言:

  1. Private Sub Form_Load()
    Me.Hide
    Dim f(), g()
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Input #1, n
    ReDim f(n)
    ReDim g(n)
    f(1) = 1: g(1) = 1
    For i = 2 To n
    f(i) = i + f(i - 1)
    g(i) = f(i) + g(i - 1)
    Next
    Print #2, f(n), g(n)
    Loop
    Close
    Close
    End
    End Sub

    回覆刪除
  2. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Dim f(), g()
    Do While Not EOF(1)
    Input #1, n
    ReDim f(n), g(n)
    f(1) = 1: g(1) = 1
    For i = 2 To n
    f(i) = i + f(i - 1)
    g(i) = f(i) + g(i - 1)
    Next i
    Print #2, f(n); g(n)
    Loop
    Close
    Close
    End
    End Sub

    回覆刪除
  3. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Input #1, n
    ReDim f(n), g(n)
    f(1) = 1
    g(1) = 1
    For i = 1 To n
    f(i) = i + f(i - 1)
    Next i
    For j = 1 To n
    g(j) = f(j) + g(j - 1)
    Next j
    Print #2, f(n), g(n)
    Loop
    Close #2
    Close #1
    End
    End Sub

    回覆刪除
  4. Dim f(), g() As Integer
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Input #1, n
    ReDim Preserve f(n), g(n)
    f(1) = 1: g(1) = 1
    For i = 2 To Val(n)
    f(i) = i + f(i - 1)
    g(i) = g(i - 1) + f(i)
    Next i
    Print #2, f(n); g(n)
    Loop
    Close #2
    Close #1
    End
    End Sub

    回覆刪除