問題一

Q1.

  給你M個正三角形垛,把他們疊起來如下圖。然後給定數字N,求能夠被N整除的M。(M是下列的總和,如下圖總和為1+4+10+20)

NTUCSIE2008pro1

輸入
整數N
輸出
最小能夠被N整除的M


範例輸入
23
範例輸出
20


解題關鍵
程式碼參考

廣告

Responses

  1. 今年剛考完學測 正在準備申請的資料~~~
    看到了這題沒程式碼就順便做了下

    這題的題目不好懂 或者該說表達本身不夠嚴謹 容易誤解
    為了解讀題目花的時間遠比實作程式的時間來的長

    題目改一下因該會好懂些

    給你M個正三角形垛,把他們疊起來如下圖。然後給定數字N,求全部總合(如下圖總和為1+4+10+20)能夠被N整除情況下的最小M值。

    個人寫的程式如下

    #include
    #include

    int main()
    {
    int m_add_count = 0, m = 0, n = 0, i = 0;
    scanf(“%d",&n);

    while(true){
    i++;
    // 計算多出層的球數並累加到堆總數
    m_add_count += (1 + i) * i / 2;
    // 累加至m值
    m += m_add_count;
    // 判定n是否可整除
    if(m % n == 0) break;
    }

    printf(“%d", i);

    system(“PAUSE");
    return 0;
    }

    也感謝你分享考古題
    這方面的資訊真的不多

  2. 這有數學解
    化簡級數後
    可得第K張圖的總和為
    K*(K+1)*(K+2)*(K+3)/24
    故輸出 N-3 即可


發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: