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
<以下部分省略>
 
分析:
  可以通过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
", s);
23     }
24     return 0;
25 }
原文地址:https://www.cnblogs.com/GetcharZp/p/9034522.html