个人品牌网站建设,襄州区城乡建设局网站,岚山网站建设报价,一键建站约瑟夫环是一个数学的应用问题#xff1a;已知n个人#xff08;以编号1#xff0c;2#xff0c;3...n分别表示#xff09;围坐在一张圆桌周围。从编号为k的人开始报数#xff0c;数到m的那个人出列#xff1b;他的下一个人又从1开始报数#xff0c;数到m的那个人又出列…约瑟夫环是一个数学的应用问题已知n个人以编号123...n分别表示围坐在一张圆桌周围。从编号为k的人开始报数数到m的那个人出列他的下一个人又从1开始报数数到m的那个人又出列依此规律重复下去直到圆桌周围的人全部出列。 分析有n个人要想所有的人都退出去只有每个人喊到m才可以退完所以可以算出n*m为所有人总共报数的总次数。
代码 /** 约瑟夫出圈*/
#include stdio.hint main()
{char peo[100] ;char *p_peo peo;int i , n , skip , flag[100] {0} , cnt;int *p_flag NULL;printf(请输入人数);scanf(%d, n);printf(所有人如下\n);for(p_peo , i 0 ; p_peo peo n ; p_peo , i){*p_peo a i;printf(%c , *p_peo);}printf(\n);printf(请输入报数值);scanf(%d, skip);cnt 0;while(cnt n * skip){for(p_peo peo , p_flag flag ; p_peo peo n ; p_peo , p_flag){if(*p_flag)continue;cnt;if(!(cnt % skip)){*p_flag 1;printf(%c , *p_peo);}}}printf(\n);return 0;
}