今天寫程序明白一點,有時候把結果分析出來,找找規律,寫的時候才容易寫。
這個又沒寫出來,我還沉浸在上個程序當中,企圖用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;
}
}
總結一句話,要想解題,必須很好的理解題目中的字典順序是什麼意思。
最後是一點小插曲,有個地方敲錯了,結果卻出了一個很文藝的結果:
哈哈。