C语言递归穷举n位m进制数字(回溯)
2017-10-31 11:35
901 查看
Problem B
穷举n位二进制数
时限:100ms 内存限制:10000K 总时限:300ms
描述:输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。
输入:
输入一个小于20的正整数n。
输出:
按从小到大的顺序输出所有的n位二进制数,每个数占一行。
输入样例:
3
输出样例:
000
001
010
011
100
101
110
111
#include<stdio.h>
int n,a[100];
void search(int m);
void output();
int main()
{
scanf("%d",&n);
search(0);
return 0;
}
void search(int m)
{
int i;
if(m==n)output();
else
{
for(i=0;i<2;i++)//若将i<2改为i<m,则可输出n位m进制数字
{
a[m]=i;
search(m+1);
}
}
}
void output()
{
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
}
printf("\n");
}
相关文章推荐
- 回溯--深度优先搜索(数字n的组合数)
- Java回溯法对数字的全排列
- 数字排列(n,m)(搜索与回溯)
- 回溯实现数字的排列组合
- 回溯实现数字的排列组合
- 递归回溯与迭代回溯算法框架,打印在n个数字中取k个数字的所有可能
- 递归回溯--数字分解java代码
- 关于AndroidStudio的打包数字签名以及多渠道发布
- AOJ-AHU-OJ-191 删除数字
- 第十三周项目5--统计每个数字字符出现的次数
- 数字格式化DecimalFormat
- H5+JS+相对单位rem实现第三方支付页(输入金额+模拟数字键盘+自适应布局+大写金额)
- Python 中取两位有效数字
- 剑指offer题解 数组中只出现一次的数字
- 用JS限制文本框只能输入数字时的正则表达式问题!
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 判断字符串是否为数字的方法
- C#,判断字符,是否是数字或小数(利用正则表达式)
- java生成随机数字和字母组合
- 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏