字符串 非暴力for循环法(内附C语言代码)

2016-11-26 09:00:03来源:作者:人点击

第七城市
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式
本试题没有输入。

输出格式

输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出

00000
00001
00010
00011
<以下部分省略>

除非实在做不出来,不然我一般不会看题目自带的锦囊的,这也导致我在看到网上的“标准答案”的时候大吃一惊
 
先讲锦囊和网上几乎全部的解,就是五层for循环每个数字,想知道的朋友随便百度就行了
 
我自己看到这个题的时候,可能因为上过网络基础的课,第一反应就是本题是考察我们对二进制的理解
输出32行就是0-31的排序输出二进制(直到看到网上的代码前我也一直这样认为)
因为本题比较简单我这样说思路上应该能理解了,我就直接贴我的代码吧
#include#include                                   /*转换二进制函数头文件*/int main(){	int i;	char Binary[6];				    /*转换储存数组,多生命一个存放结束符*/	for(i=0;i<32;i++)	{		itoa(i,Binary,2);		    /*第一个参数是要转换的数,第二个是储存的数组,第三个是转换的进制*/		printf("%05s/n",Binary);            /*不够5个数的前面补0*/	}	return 0;}
本题暴力for循环和二进制排序各有优点,有些刚学C的可能记不住二进制的头文件和函数,但是暴力for循环只是很简单的逻辑算法
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台