#13211: 求解 總是TLE ....


shualan780 (Alan Hsu)

學校 : 明新科技大學
編號 : 48435
來源 : [60.245.65.132]
最後登入時間 :
2017-12-27 19:59:36
a034. 二進位制轉換 | From: [218.187.83.107] | 發表日期 : 2018-01-11 00:15

#include <stdio.h>
int main(void)
{
int num1,temp,mod;
int count;
while(scanf("%d", &num1)!=0)
{
count = 0;
temp = num1;
while(temp!=0) //計算陣列所需空間
{
count++;
temp = temp/2;
}
int arr[count];
count = 0;
while(num1 != 0) // 將數字mod 2 的值放入陣列
{
mod = num1 % 2;
num1 = num1/2;
arr[count] = mod;
count++;
}
for(int i = count-1 ;i>=0;i--) //倒過來印
{
printf("%d",arr[i]);
}
printf("\n");
}
return 0 ;
}

 
#13213: Re:求解 總是TLE ....


justinO__o (夜貓)

學校 : 臺北市立成功高級中學
編號 : 51052
來源 : [111.71.212.14]
最後登入時間 :
2024-09-22 17:57:48
a034. 二進位制轉換 | From: [203.64.138.79] | 發表日期 : 2018-01-11 09:08

#include
int main(void)
{
int num1,temp,mod;
int count;
while(scanf("%d", &num1)!=0)
{
count = 0;
temp = num1;
while(temp!=0) //計算陣列所需空間
{
count++;
temp = temp/2;
}
int arr[count];
count = 0;
while(num1 != 0) // 將數字mod 2 的值放入陣列
{
mod = num1 % 2;
num1 = num1/2;
arr[count] = mod;
count++;
}
for(int i = count-1 ;i>=0;i--) //倒過來印
{
printf("%d",arr[i]);
}
printf("\n");
}
return 0 ;
}




while(scanf("%d", &num1) == 1) {

    // other

}

 

然後陣列一半就開個玩笑100格放在main外面就可以了吧

不用特別開剛剛好啦

 
#13215: Re:求解 總是TLE ....


shualan780 (Alan Hsu)

學校 : 明新科技大學
編號 : 48435
來源 : [60.245.65.132]
最後登入時間 :
2017-12-27 19:59:36
a034. 二進位制轉換 | From: [42.72.54.152] | 發表日期 : 2018-01-11 14:44

#include
int main(void)
{
int num1,temp,mod;
int count;
while(scanf("%d", &num1)!=0)
{
count = 0;
temp = num1;
while(temp!=0) //計算陣列所需空間
{
count++;
temp = temp/2;
}
int arr[count];
count = 0;
while(num1 != 0) // 將數字mod 2 的值放入陣列
{
mod = num1 % 2;
num1 = num1/2;
arr[count] = mod;
count++;
}
for(int i = count-1 ;i>=0;i--) //倒過來印
{
printf("%d",arr[i]);
}
printf("\n");
}
return 0 ;
}




while(scanf("%d", &num1) == 1) {

    // other

}

 

然後陣列一半就開個玩笑100格放在main外面就可以了吧

不用特別開剛剛好啦


AC通過了 非常感謝

我有個問題想問對於寫程式來說不浪費多餘的空間不是比較好嗎 

放在main外面跟main裡面的差異在哪我也不是很清楚@@ 懇請大大開導一下 感謝

 
#13236: Re:求解 總是TLE ....


justinO__o (夜貓)

學校 : 臺北市立成功高級中學
編號 : 51052
來源 : [111.71.212.14]
最後登入時間 :
2024-09-22 17:57:48
a034. 二進位制轉換 | From: [175.180.194.245] | 發表日期 : 2018-01-11 21:36

#include
int main(void)
{
int num1,temp,mod;
int count;
while(scanf("%d", &num1)!=0)
{
count = 0;
temp = num1;
while(temp!=0) //計算陣列所需空間
{
count++;
temp = temp/2;
}
int arr[count];
count = 0;
while(num1 != 0) // 將數字mod 2 的值放入陣列
{
mod = num1 % 2;
num1 = num1/2;
arr[count] = mod;
count++;
}
for(int i = count-1 ;i>=0;i--) //倒過來印
{
printf("%d",arr[i]);
}
printf("\n");
}
return 0 ;
}




while(scanf("%d", &num1) == 1) {

    // other

}

 

然後陣列一半就開個玩笑100格放在main外面就可以了吧

不用特別開剛剛好啦


AC通過了 非常感謝

我有個問題想問對於寫程式來說不浪費多餘的空間不是比較好嗎 

放在main外面跟main裡面的差異在哪我也不是很清楚@@ 懇請大大開導一下 感謝




當然愈省愈好是沒錯

但是程式的可讀性跟易邊寫性也是很重要的

另外

開在main裡面就會變成區域的陣列

有幾個壞處

1. 只有在main裡面才能使用

2. 在main裡能開的陣列大小不大 大概10000就會Re了 你可以自己試看看

 

還有問題也可以站內信問

加油

 
ZeroJudge Forum