#include
int main()
{
int j=0,i,M,N,rest;
long long a[10000001]={0};
scanf("%d %d",&N,&M);
rest=N;
for(i=1;rest!=1;i++)
{
if(a[i]==0)
j++;
if(j==M)
{
a[i]=M;
j=0;
rest--;
}
if(i==N)
i=0;
}
for(i=1;i<=N;i++)
if(a[i]==0)
printf("%d\n",i);
return 0;
}
这个数组不能定义很大,所以不知道怎么办了,求大佬指导!!!
2条回答 默认 最新
- benbenli 2021-05-07 20:05关注
搜索 约瑟夫环问题 可以找到链接 算法科普:什么是约瑟夫环-五分钟学算法 ,里面详细讲解了几种算法。数组求解和循环链表会堆溢出,递归求解会栈溢出。迭代法最好。下面代码运行通过了。
#include <stdio.h> int Joseph(int n,int m) { int i; int x,y; if(n <= 1 || m <= 1) return -1; if(m % 2 == 0) y = 1; else y = 2; for(i = 3; i <= n; i++) { x = (y-1 + m) % i + 1; y = x; } return y; } int main() { int n,m,x; printf("输入 n 和 m :\n"); scanf("%d %d",&n,&m); x=Joseph(n,m); printf("最后一个数为:%d\n",x); return 0; } // Output 输入 n 和 m : 10000000 3 最后一个数为:3093025
附注:求赞助积分和C币。加入CSDN将近20年了。最近几年忙小孩没登录。刚才搜索到一本电子书想下载,需要20积分/C币。赞助多少都可以。多谢。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化