作者tw00088437 (喵貓 loves fish)
看板C_and_CPP
標題[問題] 奇怪 寫的程式上網測試通過 但好像是錯的@@
時間Fri Oct 23 23:56:52 2009
http://zerojudge.tw/ShowProblem?problemid=a040
題目
問題:我覺得我寫的程式沒錯
但是153=1^3+5^3+3^3=1+125+27
所以照道理應該也是個阿姆斯壯數
但是我的程式跑不出來 這數字好像也不是什麼特例 不知為何
而且送出我的答案竟然通過了
不知道是什麼原因@@?
還是我白癡計算錯誤XD
程式碼如下
#include<iostream>
#include<math.h>
using namespace std;
int a,b,c,d,e,f=0,g,m,n;
int cat[7]={0};
int main()
{
while(cin>>n>>m)
{
for(a=n;a<=m;a++)
{
e=a;
d=0;
b=log10(a);// b-->有b+1位數
for(c=0;c<=b;c++)
{
cat[c]=e%10;
e=e/10;
d=d+pow(cat[c],b+1);
}
if(d==a)
{
cout<<a<<" ";
f++;
}
}
if(f)
{
f=0;
cout<<endl;
}
else
cout<<"none"<<endl;
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.107.30
推 ledia:我用 g++ 跑得出 153 耶 10/24 00:04
推 cismjmgoshr:log10和pow兩個函數回傳值都是浮點數,可能會有誤差? 10/24 00:09
推 softwind:踩到雷了 有不預期的行為 10/24 00:31
→ tw00088437:意抱歉 小弟初學 聽不是很懂 可以講淺顯一點嗎@@" 10/24 07:50
→ tw00088437:我主要室想知道153這數字沒什麼特別的為什麼會掛@@" 10/24 08:08
→ tw00088437:還有為什麼傳上去竟然通過 = = + 10/24 08:08
推 ledia:你用什麼 compiler ? 可能有樓上幾樓說的浮點數誤差,但 10/24 08:47
→ ledia:Judge 也許跟我一樣用 g++, 所以剛好沒爆 10/24 08:48
→ tw00088437:DEV C++ 10/24 20:03
推 VictorTom:DevC++記得也是包gcc/g++來build, 只是版本多舊就...Orz 10/24 20:28