#12757: 要如何修改


buanyz03 (張晁瑋)

學校 : 新北市立板橋高級中學
編號 : 2629
來源 : [114.25.190.198]
最後登入時間 :
2023-09-06 15:43:50
b679. 棄屍 (16+) | From: [61.231.63.121] | 發表日期 : 2017-09-26 22:03

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    long long x,ans;
    while(cin>>x)
    {
      ans=(-1+(long long)sqrt(1+8*x))/2;
      cout<<ans<<endl;
    }
}


2147483647 這組答案不知道如何通過 求解

 
#12758: Re:要如何修改


justinO__o (夜貓)

學校 : 臺北市立成功高級中學
編號 : 51052
來源 : [111.71.212.14]
最後登入時間 :
2024-09-22 17:57:48
b679. 棄屍 (16+) | From: [175.182.128.4] | 發表日期 : 2017-09-27 01:10

#include 
#include 
using namespace std;
int main()
{
    long long x,ans;
    while(cin>>x)
    {
      ans=(-1+(long long)sqrt(1+8*x))/2;
      cout<<ans<<endl;
    }
}


2147483647 這組答案不知道如何通過 求解

好像運算中有溢位喔0u0

運算中用double

輸出的時候再用long long 就 ok 了

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    long long x;
    while(cin >> x) {
    	double d = (sqrt(1 + 8.0 * x) - 1) / 2.0;
    	long long ans = d;
    	cout << ans << endl;
    }
}

// 小修

 

 

 
ZeroJudge Forum