第 1 測資點(100%): WA (line:1)
答案不正確
您的答案為: 2510076409 正確答案為: 11100011001
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=1,b=1,c=1,d=0;
while(scanf("%d",&a)!=EOF){
while(a!=0)
{
b=a%2;
a=a/2;
d=d+b*c;
c=c*10;
}
printf("%d",d);
}
return 0;}
第 1 測資點(100%): WA (line:1)
答案不正確
您的答案為: 2510076409 正確答案為: 11100011001
#include
#include
int main()
{
int a=1,b=1,c=1,d=0;
while(scanf("%d",&a)!=EOF){
while(a!=0)
{
b=a%2;
a=a/2;
d=d+b*c;
c=c*10;
}
printf("%d",d);
}
return 0;}
應該跟溢位有關係,小數都對,大一點的數就會錯喔。另外,c=1,d=0;要記得重新計算,下一個數才不會錯。還是建議用遞迴寫比較容易
第 1 測資點(100%): WA (line:1)
答案不正確
您的答案為: 2510076409 正確答案為: 11100011001
#include
#include
int main()
{
int a=1,b=1,c=1,d=0;
while(scanf("%d",&a)!=EOF){
while(a!=0)
{
b=a%2;
a=a/2;
d=d+b*c;
c=c*10;
}
printf("%d",d);
}
return 0;}
應該跟溢位有關係,小數都對,大一點的數就會錯喔。另外,c=1,d=0;要記得重新計算,下一個數才不會錯。還是建議用遞迴寫比較容易
妳的C值 少寫了c++; 完全部會動阿= =
另外系統測試時會用超過5000以上的值進行轉換 如果用10次方的寫法會溢出 建議用字串方式轉換避免溢出問題
參考
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main()
{
int x ,n = 0;
char y[100] = {0};
while( scanf("%d" ,&x) != EOF)
{
while (x)
{
y[n] = (x%2);
x = (x/2);
n++;
}
while (n)
{
printf("%d" ,y[n-1]);
n--;
}
printf("\n");
}
return 0;
}