今天写程序明白一点,有时候把结果分析出来,找找规律,写的时候才容易写。
这个又没写出来,我还沉浸在上个程序当中,企图用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;
}
}
总结一句话,要想解题,必须很好的理解题目中的字典顺序是什么意思。
最后是一点小插曲,有个地方敲错了,结果却出了一个很文艺的结果:
哈哈。