ZeroJudge A215: 明明愛數數

明明是一個愛數數的好學生,這天媽媽叫他從 N 開始數,下一個數字是 N + 1,再下一個數字是 N + 2,以此類推。媽媽想知道,明明數了幾個數字之後,他數過的這些數字的總和會超過 M。請幫助明明的媽媽吧。

範例測資

範例輸入範例輸出
輸入以 EOF 結束。每一筆測試資料有兩個數字,分別為 N 和 M,其中 M – N 不會超過 10^5。輸出數了幾個數字之後,數過的這些數字的總和會超過 M。
1 5
5 10
100 1000
3
2
10

解題思路

假設 N + (N+1) + (N+2)...+ (N+K) >= M,使用For迴圈將 N 到 N+K 的所有數字加在一起,預設 K = 1 ,每次結束迴圈時 +1,終止條件設為總和大於等於 M 時。設定一個存數字總和的變數,預設為 N,每次跑For迴圈就加上 N+K。最後輸出 K,也就是跑了幾次的For迴圈。

範例程式碼-ZeroJudge A215: 明明愛數數

#include <iostream>
using namespace std;

int main() {
    int N, M;
    while (cin >> N >> M)
    {
        int sum = N;
        int K = 0;
        for (K = 1; sum <= M; K++)
        {
            sum += N+K;
        }
        cout << K << endl;
    }
}

//ZeroJudge A215
//Dr. SeanXD

發佈留言