1. 程式人生 > >資料結構實戰01

資料結構實戰01

題目:

這是一個約瑟夫環問題,用C語言陣列解決如下

#define MAXN 100

void printring(int a[],int n,int i,int k){
	int b[MAXN],j,s;
	for(j=0;j<n;j++){
	    b[j]=0;
	    printf("b[%d]=%d\n",j,b[j]);
	}	      
	      
	      printf("------\n");
	i--;  //轉換為陣列下標 
	s=0;
	j=n;
	while(j>0){
		if(b[i]!=-1){
			s++;
			if(s==k){
				s=0;
				j--;
				printf("a[%d]=%d \n",i,a[i]);       //列印該數 
				b[i]=-1;
			}
		}
		
	  i=(i+1)%n;                    //下標移動 
	}

}

int main()
{
   int a[10]={1,2,3,4,5,6,7,8,9,10};
   
   printring(a,10,5,12);
   printf("-----\n");
}