前缀和后缀自增和自减的比较

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 }

 

你可能感兴趣的:(前缀和后缀自增和自减的比较)