【題解】Zerojudge a215 - 明明愛數數

題目大意

給定 $n$ 和 $m$,問從 $n$ 開始數最少要數幾個數字使得這些數字的總和 $> m$。
  • $m - n \leq 10^5$

題解

直接暴力從 $n$ 累加即可,大約會在數 $O(\sqrt{m})$ 個數字後總和 $> m$。需要特別注意輸入的 $n$ 和 $m$ 有可能為負數,因此我們用 do-while 來避免數 $0$ 個數字的 case。
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, m;
	while(cin >> n >> m) {
		int sum = 0, ans = 0;
		do {
			ans++;
			sum += n;
			n++;
		} while(sum <= m);
		cout << ans << "\n";
	}
	return 0;
}

如果本文對您有幫助的話幫忙點擊廣告和分享吧!

© 若無特別註明,本站文章皆由 WeakMouse's Coding Blog 原創 ,轉載引用本文前請先留言告知。本文轉載請註明文章源自 WeakMouse's Coding Blog ,作者 ,並附上原文連結: 【題解】Zerojudge a215 - 明明愛數數

張貼留言

0 留言