《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;
	}
}

總結一句話,要想解題,必須很好的理解題目中的字典順序是什麼意思。

最後是一點小插曲,有個地方敲錯了,結果卻出了一個很文藝的結果:



哈哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章