1137: 进制转换
时间限制: 1 Sec 内存限制: 128 MB
题目描述
给出一个十进制的正整数,输出它的二进制表示。
输入
有多行数据,每一行一个正整数,整数值在[1-100000000]之间。
输出
输出相应的二进制数.每一行输出对应每一行输入
样例输入
3
4
样例输出
11
100
1 #include <stdio.h> 2 int main(void) 3 { 4 int index, n; 5 int digits[40]; 6 while(scanf("%d", &n) != EOF) { 7 index = 0; 8 while(n) { 9 digits[index++] = n % 2; 10 n /= 2; 11 } 12 index--; 13 while(index >= 0) 14 printf("%d", digits[index--]); 15 printf("\n"); 16 } 17 return 0; 18 }
不满足之处是第12行,要回退一个。下面利用前缀自增去除了这一行,注意第7行和第9行的变化。
1 #include <stdio.h> 2 int main(void) 3 { 4 int index, n; 5 int digits[40]; 6 while(scanf("%d", &n) != EOF) { 7 index = -1; 8 while(n) { 9 digits[++index] = n % 2; 10 n /= 2; 11 } 12 while(index >= 0) 13 printf("%d", digits[index--]); 14 printf("\n"); 15 } 16 return 0; 17 }
时间: 2024-10-12 13:26:13