明明是一個愛數數的好學生,這天媽媽叫他從 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