从1到n生成二进制数的有趣方法?
在这里,我们将看到一种有趣的方法,用于生成从1到n的二进制数。在这里,我们正在使用队列。最初,队列将保留第一个二进制数字“1”。现在,从队列中重复删除元素,进行打印,并在最前面的项目的末尾附加0,并在最前面的时间的末尾附加1,然后将它们插入队列。让我们看一下获得想法的算法。
算法
genBinaryNumbers(n)
Begin
define empty queue.
insert 1 into the queue
while n is not 0, do
delete element from queue and store it into s1
print s1
s2 := s1
insert s1 by adding 0 after it into queue
insert s1 by adding 1 after it into queue
decrease n by 1
done
End示例
#include <iostream>
#include <queue>
using namespace std;
void genBinaryNumbers(int n){
queue<string> qu;
qu.push("1");
while(n != 0){
string s1 = qu.front();
qu.pop();
cout << s1 << " ";
string s2 = s1;
qu.push(s1 + "0");
qu.push(s1 + "1");
n--;
}
}
int main() {
int n = 15;
genBinaryNumbers(n);
}输出结果
1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短