当前位置:首页 > 语法百题36-99
printf(\ return 0; }
1077: 语法百题 约瑟夫问题1 时间限制: 1 Sec 内存限制: 128 MB
题目描述
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。 输入
初始人数n 输出
最后一人的初始编号 样例输入 3 样例输出 2
#include
const int M = 3;
int main() {
int n, s = 0; scanf(\
for (int i = 2; i <= n; ++i) s = (s+M)%i;
printf(\ return 0; }
1078: 语法百题 约瑟夫问题2
时间限制: 1 Sec 内存限制: 128 MB
题目描述
设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。 输入
多组数据,输入多行,每行2个数,分别表示n和m. 输出
多行,计算每一行中最后剩下这个人的编号. 样例输入 10 3 2 1 样例输出 4 2
#include
int i,n,m,p,q,s; int a[1000];
while(cin>>n>>m) {
for(i=0;i a[i]=1; p=0; for(q=1;q<=n-1;q++) { for(i=p;i i=(i-1)%n; a[i]=0;
共分享92篇相关文档