从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 送给学长毕业祝福语简短