切換
舊版
前往
大廳
主題

[創作|作業][C++]演算法Week3:1-Add the page

極巨龍神塔奇 | 2018-03-30 00:10:44 | 巴幣 4 | 人氣 455

頁數加總
現在有個人會將書本所有的頁數做相加,例如一本書假設 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;
}
送禮物贊助創作者 !
0
留言

創作回應

更多創作