根据信息显示哪里有溢出,所以得检查下代码,并不一定是你贴的这个函数内。
看一下数据结构定义,另外检查一下fp是否为空
代码不完整,输入文件的内容是什么也不知道。
看看文件里有没有内容,格式和你的输入格式是否一致
约瑟夫环n 个人的编号是 1 ~ nn,如果他们依编号按顺时针排成一个圆圈,从编号是 1 的人开始顺时针报数。
(报数是从 1 报起)当报到 kk 的时候,这个人就退出游戏圈。下一个人重新从 1 开始报数。
求最后剩下的人的编号。这就是著名的约瑟夫环问题。
本题目就是已知 n,kn,k 的情况下,求最后剩下的人的编号。
题目链接:
输入描述
输入是一行,2 个空格分开的整数 n, k(0 < n, k < 10的7次方)。
输出描述
要求输出一个整数,表示最后剩下的人的编号。
输入输出样例
输入
10 3
输出
4
这道题是2018年蓝桥杯国赛的真题,也是很经典的一道递归题。在CSDN上有很多大佬的讲解,我就不过多阐述了,直接上代码吧。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n, k, i, ans = 0;
scanf("%d %d", &n, &k);
for(i = 1; i <= n; i++)
{
ans = (ans + k) % i;
}
printf("%d", ans + 1);
return 0;
}