《C语言名题精选百则----12》

今天写程序明白一点,有时候把结果分析出来,找找规律,写的时候才容易写。

这个又没写出来,我还沉浸在上个程序当中,企图用01序列把这些写出来。

应该是可以写出来的,只是我没找到什么规律。

还是看题目和标准答案吧:



这里有些特殊,先看运行结果:



再来说答案,我把这个答案研究了好长时间,不知道是讲得不是很好还是我的理解力还跟不上。。。

后来看了结果,才明白里面讲的规律,大家仔细观察规律,想想自己能不能写出来。


标准答案:(源码无法正常显示的话就点击右键->查看源文件)

#define LOOP 1

int main()
{
	int set[MAXSIZE] = {0};
	int n,i;
	int position;
	char line[100];
	
	gets(line);
	n = atoi(line);
	printf("\n{}");
	position = 0;
	set[position] = 1;
	while(LOOP)
	{
		printf("\n{%d",set[0]);
		for(i = 1;i <= position;i++)
			printf(",%d",set[i]);
		printf("}");
		
		if(set[position] < n)
		{
			set[position + 1] = set[position] + 1;
			position ++;
		}
		else if(position != 0)
			set[--position]++;
		else
			break;
	}
}

总结一句话,要想解题,必须很好的理解题目中的字典顺序是什么意思。

最后是一点小插曲,有个地方敲错了,结果却出了一个很文艺的结果:



哈哈。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值