当前位置: 代码迷 >> 综合 >> 1980-分苹果
  详细解决方案

1980-分苹果

热度:84   发布时间:2023-12-29 15:35:58.0

【C系列4.12】函数训练之分苹果 1980

Time Limit:  1 s      Memory Limit:   32 MB
Submission:130     AC:78     Score:27.33

 

Description

cyn小朋友所在的幼儿园今天上午的点心是苹果,但是mwy老师分到最后发现多了两个苹果,于是他决定用一种方法找出一位位幸运儿。

n个小朋友围成一圈,编号从1-n,第一个人从1数起,数到7的那个人就被淘汰出局,接下来的人又从1数起,数到7再次被淘汰(如果人数不满7个,则循环着数)……最后剩下的一个人就是赢家(主函数已经给出)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include<stdio.h> int jos(int n); int main() {int n,s,t;scanf("%d",&t);while(t--){scanf("%d",&n)s = jos(n);printf("%d ", s);}return 0; }


Input

第一行输入一个整数T,代表有T组测试样例。

接下来的T行每行输入一个整数n(n<=1000),代表总共有几位小朋友。

Output

对于每一个n,输出对应幸运儿的初始编号。

Samples

input:
2
100
32
output:
50
5


下附AC代码:

#include<stdio.h>
int jos(int n);
int main()
{int n,s,t;scanf("%d",&t);while(t--){scanf("%d",&n);s = jos(n);printf("%d\n", s);}return 0;
}int jos(int n) {int i;int k = 0;for (i = 2; i <= n; ++i) {k = (k + 7) % i;}return k + 1;
}


原题链接:http://acm.hznu.edu.cn/OJ/problem.php?cid=1092&pid=13