約瑟夫環問題,經典筆試,鄙視

記得大二上java課的時候老師讓在課堂上寫出來,每一個人會寫,現在想想真是汗顏納·····

 

                     
#include <stdio.h>

#define N 12

int main()
{
	 int j[N]={0};
	 
	 int bol[N]={0};
	 int i,c=0,bleap = 1;

	 for( i =0; i <N;i++)
	 {
		 j[i]=i+1;
		 printf("%d ",j[i]);
	 }
	 printf("\n");	 

	 //i作爲循環標尺,c是輸出個數的記錄,bol記錄了某個位置是否已經不參與。
	 //bleap記錄是否已經跳過一個
	 i =0;
	 while(c < N)
	 {
		if(bol[i%N] == 0)
		{
			if(bleap == 0)
			{
				bleap = 1;
			}
			else
			{
				c++;
				printf("%d ",j[i%N]);
				bol[i%N] = 1;
				bleap = 0;
			}
		}
		i++;
	 }
	 return 0;
}

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