頁數加總
現在有個人會將書本所有的頁數做相加,例如一本書假設 10 頁,就會從 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 得到 55。
如果現在這個人固定會少算一頁,也只知道現在少算後全部相加的結果,請求出他少算的是哪一頁跟原本總共是幾頁。
例:結果是 50,就可以知道原本有 10 頁,而他少算了第 5 頁
例:結果是 45,就可以知道原本有 10 頁,而他少算到第 10 頁
提示:10 頁的總頁數是 55,11 頁的總頁數是 66,可以從總頁數的差來求答案
Input
第一行為測資筆數 n
後面 n 行為相加的結果
Output
每 n 組測資都有兩個值,輸出少算的是哪一頁跟這本書總共幾頁
範例輸入:
2
3
9000
範例輸出:
3 3
45 134
/*----- ----- ----- -----*/ //Add the page //Made by 105502555 Teemo Hsu(Synasaivaltos) //Date: 2018/03/29 /*----- ----- ----- -----*/ #include <iostream> #include <vector> using namespace std; int main(void) { int n; cin >> n; vector<int> ans1; vector<int> ans2; while(--n>=0) { int p,i=0; cin >> p; while((++i)*(i+1)/2<=p); ans1.push_back(i*(i+1)/2-p); ans2.push_back(i); } for(int i=0;i<ans1.size();cout<<ans1.at(i)<<" "<<ans2.at(i)<<endl,i++); return 0; } |
/*----- ----- ----- -----*/ //Add the page //Made by 105502555 Teemo Hsu(Synasaivaltos) //Date: 2018/03/29 /*----- ----- ----- -----*/ #include <iostream> #include <cmath> #include <vector> using namespace std; int main(void) { int n; cin >> n; vector<int> ans1; vector<int> ans2; while(--n>=0) { int p; cin >> p; int tp=ceil((-1+sqrt(1+8*(p+1)))/2); ans1.push_back(tp*(tp+1)/2-p); ans2.push_back(tp); } for(int i=0;i<ans1.size();cout<<ans1.at(i)<<" "<<ans2.at(i)<<endl,i++); return 0; } |