我認爲這個問題可以通過一個平方根int數來解決....但
爲什麼這段代碼顯示錯誤的答案........?uva 10110燈,多燈在線評委給出錯誤的答案
#include<stdio.h>
#include<math.h>
int main(){
long int n;
while(scanf("%ld",&n)==1&& n!=0)
{
long double dbl=(long)sqrt(n);
int in=sqrt(n);
if(dbl==in)
printf("yes\n\n");
else
printf("no\n\n");
}
return 0;
}
如果你想檢查一個數是否是一個完美的正方形,你應該檢查'in * in == n'或'in == sqrt(n)'。你的測試是多餘的,因爲'dbl'和'in'都是根的整數表示。 –
它解決了嗎? – coderredoc
你正在收到什麼錯誤?表示錯誤或WA? – coderredoc