【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