竹園論壇

標題: 107 紀念品的難題 [打印本頁]

作者: amoshuangyc    時間: 2014-8-9 21:38
標題: 107 紀念品的難題
本帖最後由 amoshuangyc 於 2014-8-9 22:58 編輯

這題的題目敘述並不是很清楚,舉得例子太少了(起碼對我這個沒去營隊的人來說,不知現場有沒有對這題做出說明)

「他的女兒各有 1+2 個兒子,以此類推」這句話是說:


勇者的第二個兒子有兩個女兒,兩個女兒都有 3 個兒子(1+2 = 3)。
勇者的第三個兒子有三個女兒,三個女兒都有 6 個兒子(1+2+3 = 6)。
勇者的第四個兒子有四個女兒,四個女兒都有 10 個兒子(1+2+3+4 = 10)。

勇者的第 i 個兒子有 i 個女兒,i 個女兒都有 (1+i)*i/2 個兒子(1+2+3+...+i)。
對勇者的第 i 個兒子及其後代共需要 1(兒子)+ i (孫女)+ (1+i)*i / 2 * i(曾孫) 個記念品。


示意圖如下:

勇者:
  第一個兒子:
    孫女兒:
      曾孫。

  第二個兒子:
    孫女兒
      曾孫
      曾孫
      曾孫。
    孫女兒
      曾孫
      曾孫
      曾孫。

  第三個兒子:
    孫女兒
      曾孫
      曾孫
      曾孫
      曾孫
      曾孫
      曾孫。
    孫女兒
      曾孫
      曾孫
      曾孫
      曾孫
      曾孫
      曾孫。
    孫女兒
      曾孫
      曾孫
      曾孫
      曾孫
      曾孫
      曾孫。
  



我原本以為是這樣:第二個兒子有兩個女兒,一個 1 個兒子,另一個 2 個兒子;第三個兒子有三個女兒,一個 1 個兒子,一個 2 個,一個 3 個……



AC Code:
[C++] 純文本查看 復制代碼

#include <iostream>

using namespace std;

int main() {
    int sum = 0;
   
    for (int i=1; i<=30; i++) {
        sum += 1;
        sum += i;
        sum += (1+i) * i / 2 * i;
    }
   
    cout << sum << endl;
   
    return 0;
}














歡迎光臨 竹園論壇 (http://forum.tfcis.org/) Powered by Discuz! X3.2