b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

约瑟夫环问题_约瑟夫环问题 c语言_约瑟夫环问题实验报告

电脑杂谈  发布时间:2017-02-13 09:26:10  来源:网络整理
约瑟夫环问题约瑟夫环问题

Description约瑟夫环问题:设有n个人围坐一圈,并按顺时针方向1—n编号。从第s个人开始进行报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m的报数进行下去,直到只剩一个人为业

Input 人数n

从第s个人开始报数s

报到第几个数m

Output 剩下的最后一个人的编号

Sample Input 9 1 3 Sample Output 1

#include <stdio.h> int main() { int n,f,s;scanf('%d%d%d',&n,&s,&f); //输入题目中的n s f inta[n+1],i,num,k; // 定义变量 for(i=0; i<n; i++) //循环初始化每一个人的编号a[i]=i+1; num=0; //初始化变量 i=s-1; k=0; while(num<n-1) //当剩余一人时停止 {if(a[i]!=0)k++; //当第i个人报数成功后k+1 if(k==f) //当报数的人数到达f后出圈抹去他的编号(将a[i]赋值为0) { a[i]=0; num++; k=0; //k重新计数 } i++; //对下一个编号进行判断if(i==n)i=0; //当i超过编号最大值时 i从0重新计数 } for(i=0; i<n; i++)//循环判断输出剩下的那一个人的编号 if(a[i]!=0)printf('%d',a[i]); return 0; }


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32151-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...