廊坊网站建设模板,网站开发环境准备,美容北京公司网站建设,代做设计的网站目录 一#xff1a;问题
二#xff1a;思路分析
三#xff1a;代码 一#xff1a;问题 二#xff1a;思路分析
1.输出结果是按编号输出#xff0c;所以要考虑数组#xff0c;数组里面存的数是有编号的#xff0c;所以把n个人放到数组中#xff0c;让他们的编号也是…
目录 一问题
二思路分析
三代码 一问题 二思路分析
1.输出结果是按编号输出所以要考虑数组数组里面存的数是有编号的所以把n个人放到数组中让他们的编号也是1~n数组大小未知有提示的数据范围可将数组设计在大于1000的范围
2.我们要区分报数的人是不是具有报数的能力即他之前没有报到过m所以我们可以通过数组的值区分这个人是否可以报数默认初始值是零均可以报数当一个人报到m是将里面的值置为1并将下标打印出来
3.结束的标志是n 0所以每打印一个下标n--知道n0程序结束
4.在程序中我们设一个i作为下标上来i先加一从一开始循环每执行一次不管该下标是否可以报数再次进入循环是i都要1此时就会出现一个问题一共有n个人当i超过n呢此时会循环从一开始在接着报数所以in是i 1重新从一开始判断
三代码 #include stdio.h
//2037约瑟夫问题
int main()
{int arr[1005] { 0 };int n 0, m 0;scanf(%d %d, n, m);int num n;int i 0;int s 0;//统计报数while (num){i;if (i n)i 1;if (arr[i] 0){s;if (s m){num--;arr[i] 1;s 0;printf(%d , i);}}}return 0;
}