當前位置:編程學習大全網 - 編程軟體 - C語言編程求解約瑟夫問題

C語言編程求解約瑟夫問題

約瑟夫環的問題,我給妳壹個,程序首先輸入小孩子個數,然後輸入W

首先輸出每個小孩子的編號,然後輸出出列的數序,最後輸出留下的小孩的編號

#include<stdio.h>

int Josephus(int *Child,int n,int m);

void main()

{

int *allChild,j,k,l;

scanf("%d%d",&j,&k);

//cin>>j>>k;

if((allChild= new int[j])!=NULL)

{

for(l=0;l<j;l++)

{

printf("%d,",l+1);

//cout<<l+1<<",";

allChild[l]=l+1;

}

printf("\n");

//cout<<endl;

printf("%d",Josephus(allChild,j,k));

//cout<<Josephus(allChild,j,k);

}

}

int Josephus(int *Child,int n,int m)

{

int i=-1,j=0,k=1;

while(1)

{

for(j=0;j<m;)

{

i=(i+1)%n;

if(Child[i]!=-1)

j++;

}

if(k==n)

break;

//cout<<Child[i]<<",";

printf("%d,",Child[i]);

Child[i]=-1;

k=k+1;

}

printf("\n");

//cout<<endl;

return(Child[i]);

}

  • 上一篇:江蘇大專單招學校有哪些
  • 下一篇:大學物理對於軟件工程專業學生的作用 ? !! 請相關專業的學哥學姐們來說下吧 ^_^
  • copyright 2024編程學習大全網