博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过递归遍历n位2进制数的所有情况
阅读量:5890 次
发布时间:2019-06-19

本文共 691 字,大约阅读时间需要 2 分钟。

题目要求:

输入一个正整数m,输出m位2进制的所有取值情况,从小到大输出,每个输出结果用换行符分割。

解题思路:

通过递归调用,从第1个到第m个数组元素分别置0和置1,然后当从1到m所有的元素都置0或者置1之后,进行输出。

程序代码:

#include
using namespace std;int m = 0;void fun(int *a,int n){ if(n>=m) { for(int i=0;i
>m; int * a = new int [m]; fun(a,0); return 0;}

当m=3的时候,输出结果为:

0 0 0

0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

程序运行的示例图:

如果,m不是一个由用户输入的值,而是一个固定的值,还可以使用m层循环来实现该程序:

#include
using namespace std;int main(){ int m=3; for(int i=0;i<2;i++) { for(int j=0;j<2;j++) { for(int k=0;k<2;k++) { cout<
<<" "<
<<" "<
<
但是很明显,该程序不但具有局限性,还比较复杂,不如递归的方法。



转载于:https://www.cnblogs.com/zhezh/p/3773487.html

你可能感兴趣的文章
云服务器怎么卸载mysql数据库_mysql 删除数据库脚本
查看>>
mysql 5.5.57互为主从_MYSQL 5.5.18 互为主从配置成功
查看>>
mysql5002_mysql新手进阶02
查看>>
python类 del_全面了解Python类的内置方法
查看>>
前后端传图片用base64好吗_前后端分离 前台传base64的图片 tp5.1.1进行处理
查看>>
java对象的排序_Java对象排序两种方法
查看>>
java jni 原理_使用JNI技术实现Java和C++的交互
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>
java 生成对称密钥_java中以DES的方式实现对称加密并提供密钥的实例
查看>>
java hostwrite_一个RUNNABLE状态的线程hang在了java.io.FileOutputStream.writeBytes方法上
查看>>
计算机java语言答案_【计算机考试】JAVA语言,求答案!!!
查看>>
java web session管理_Java Web之会话管理二:Session
查看>>
java 面向对象基本概念_Java面向对象-面向对象编程之基本概念
查看>>
java数值保留2位小数_java中如何使Double类型的数值保留两位小数问题
查看>>
java基础包括哪些内容_Java基础课程内容有哪些?
查看>>
java跨行_小白跨行学习Java的辛酸路程
查看>>
mysql5.7 外键错误_mysql5.7 创建表外键失败 求看下!!!! 折磨我一天了?
查看>>
python asyncio文件操作_Python中使用asyncio封装文件读写详解及实例
查看>>
java邮件数据库_java 发送数据库查询的数据作为excel表格邮件
查看>>
画图程序 java_一个JAVA画图程序
查看>>