lqb 基础练习 01字串 (itoa)
基础练习 01字串
时间限制:1.0s 内存限制:256.0MB
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
00001
00010
00011
<以下部分省略>
分析:
可以通过itoa(int n, char *, int m) 将指定的整数n转化成对应的m进制的数
itoa函数可以将一个十进制的数转化为对应的m进制
核心代码:
1 for(int i = 0; i <= 31; ++ i) 2 { 3 int temp = i, num; 4 char s[10]; 5 itoa(temp, s, 2); 6 num = 5 - strlen(s); 7 while(num --) 8 printf("0"); 9 printf("%s", s); 10 }
C/C++代码实现(AC):
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <map> 8 #include <queue> 9 10 using namespace std; 11 12 int main() 13 { 14 for(int i = 0; i <= 31; ++ i) 15 { 16 int temp = i, num; 17 char s[10]; 18 itoa(temp, s, 2); // 将temp转化为对应的2进制存在s中 19 num = 5 - strlen(s); 20 while(num --) 21 printf("0"); 22 printf("%s\n", s); 23 } 24 return 0; 25 }