# 題目: UVa 12908 - The book thief
# 題目說明
給一個整數 s
, s
符合 1 + 2 + 3 + ... + n - x
,也就是從 1
開始的累加,但其中少了一頁
其中 n
為總頁數、 x
為缺少的頁碼
求 n
與 s
INPUT:
每筆測資輸入一個整數 s
當 s
為 0
時結束
OUTPUT:
輸出缺少的頁碼 x
與總頁數 n
# 解題方法
使用一個變數 sum
維持現在的累加值, i
為累加的次數
當 sum > s
時, sum - s
即為缺少的頁碼, i
即為總頁數
# 參考程式碼
#include <iostream> | |
using namespace std; | |
static auto fast_io = [] | |
{ | |
ios::sync_with_stdio(false); | |
cout.tie(nullptr); | |
cin.tie(nullptr); | |
return 0; | |
}(); | |
int main() | |
{ | |
int n; | |
while (cin >> n, n) | |
{ | |
int i = 0, sum = 0; | |
while (sum <= n) sum += ++i; | |
cout << sum - n << " " << i << "\n"; | |
} | |
} |