#9870: 關於溢位,以及多bit宣告


song856854132 (Steve)

學校 : 國立嘉義高級中學
編號 : 48007
來源 : [49.218.98.193]
最後登入時間 :
2017-11-30 21:24:33
d213. 长寿的兔子 -- 著名题目 | From: [73.12.0.148] | 發表日期 : 2015-05-30 10:12

第 1 測資點(0%): WA (line:63)
答案不正確
您的答案為: -18014398509481984 正確答案為: 18428729675200069632 
這是我的code
#include <cmath>
#include <iostream>

using namespace std;

int main()
{
int a=0;
while (cin>>a)
{
int i=0,j=0;
long long int sum=2,die=2;
if (a==0)
{
cout<<sum<<endl;
}
else
{
for (i=0;i<=a;i++)
{
sum*=2;
}
sum=sum-2;
if (a>=10)
{
for(j=0;j<=a-10;j++)
{
die*=2;
}
die=die-2;
}
cout<<sum-die<<endl;
}

}
return 0;
}
 
所以很明顯是long long int 宣告不足,怎樣才能解決?? 
 
#9873: Re:關於溢位,以及多bit宣告


silithus (希利蘇斯)

學校 : 澳門培道中學
編號 : 33314
來源 : [60.246.116.246]
最後登入時間 :
2023-09-19 17:00:10
d213. 长寿的兔子 -- 著名题目 | From: [60.246.135.123] | 發表日期 : 2015-05-31 00:59

第 1 測資點(0%): WA (line:63)
答案不正確
您的答案為: -18014398509481984 正確答案為: 18428729675200069632 
這是我的code
#include 
#include

using namespace std;

int main()
{
int a=0;
while (cin>>a)
{
int i=0,j=0;
long long int sum=2,die=2;
if (a==0)
{
cout< }
else
{
for (i=0;i<=a;i++)
{
sum*=2;
}
sum=sum-2;
if (a>=10)
{
for(j=0;j<=a-10;j++)
{
die*=2;
}
die=die-2;
}
cout< }

}
return 0;
}
 
所以很明顯是long long int 宣告不足,怎樣才能解決?? 
用unsigned long long


 
ZeroJudge Forum