作者rock1985 (疾風)
看板C_and_CPP
標題[問題] ACM 382 Perfection WA
時間Sat Nov 6 09:38:24 2010
遇到的問題: (題意請描述清楚)
ACM Q382 WA
希望得到的正確結果:
程式跑出來的錯誤結果:
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
code block G++
有問題的code: (請善用置底文標色功能)
#include <iostream>
#include "math.h"
#include <iomanip>
using namespace std;
int sqrts(int test);
void compare(int val, int com);
int main()
{
int input;
int result;
int counter = 0;
cin>>input;
while(input != 0)
{
if(counter == 0)
{
cout<<"PERFECTION OUTPUT"<<endl;
}
counter++;
result = sqrts(input);
compare(input,result);
cin>>input;
}
cout<<"END OF OUTPUT";
return 0;
}
int sqrts(int test)
{
int temp = 1;
double sq;
sq = (int) sqrt(test);
for(int i = 2 ; i <= sq ; i++)
{
if(test%i == 0)
{
if(test/i != i)
{
temp = temp + i + test/i;
}
else
{
temp = temp + i;
}
}
}
return temp;
}
void compare(int val, int com)
{
if(val > com)
{
cout<<setw(5)<<val<<" DEFICIENT"<<endl;
}else if(val == com)
{
cout<<setw(5)<<val<<" PERFECT"<<endl;
}else
{
cout<<setw(5)<<val<<" ABUNDANT"<<endl;
}
}
補充說明:
久久沒寫就吃了一個WA
麻煩大家幫我看一下
幫我找一下我的盲點
這題是只會有一行輸入嗎??
感覺這邊可能是造成WA的問題所在
謝謝大家
--
我不是宅 我只是比較居家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 108.6.69.163
※ 編輯: rock1985 來自: 108.6.69.163 (11/06 09:41)
→ x000032001:拿掉cout << "Input a integer" << endl; 11/06 11:23
※ 編輯: rock1985 來自: 108.6.69.163 (11/06 11:38)
→ rock1985:我簡直蠢翻了 = =a 不過還是WA 11/06 11:39
→ stupid0319:cin>>input; while(input==0) {....cin>>input;} 11/06 11:58
謝謝兩位
我有在修改了一下
不過目前依然是WA
繼續麻煩大家了 謝謝
※ 編輯: rock1985 來自: 108.6.69.163 (11/06 12:15)