C语言求解:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位(约瑟夫问题)

完整代码:

复制代码
/* 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人
退出圈子,问最后留下的是原来第几号的那位*/
#include<stdio.h>

//约瑟夫问题
//递推关系f(n)=(f(n-1)+2)\mod n + 1 
int func(int n){
    if (n==1)
    {
        return 1;
    }
    else{
        return (func(n-1)+2)%n+1;
    }
}

int main(){
    int n;
    printf("输入人数n:");
    scanf("%d",&n);
    printf("最后留下的是原来第%d号的那位",func(n));
    return 0;
}

运行截图:

相关推荐
我真不是小鱼7 小时前
cpp刷题打卡记录30——轮转数组 & 螺旋矩阵 & 搜索二维矩阵II
数据结构·c++·算法·leetcode
三品吉他手会点灯8 小时前
STM32 VSCode 开发-C/C++的环境配置中,找不到C/C++: Edit Configurations选项
c语言·c++·vscode·stm32·单片机·嵌入式硬件·编辑器
逻辑驱动的ken8 小时前
Java高频面试考点场景题09
java·开发语言·数据库·算法·oracle·哈希算法·散列表
帅小伙―苏9 小时前
力扣42接雨水
前端·算法·leetcode
AI科技星9 小时前
精细结构常数α的几何本源:从第一性原理的求导证明、量纲分析与全域验证
算法·机器学习·数学建模·数据挖掘·量子计算
三品吉他手会点灯9 小时前
C语言学习笔记 - 1.C概述 - 本讲内容概述
c语言·笔记·学习
6Hzlia9 小时前
【Hot 100 刷题计划】 LeetCode 287. 寻找重复数 | C++ 数组判环 (快慢指针终极解法)
c++·算法·leetcode
MegaDataFlowers9 小时前
26.删除有序数组中的重复项
算法
故事和你9110 小时前
洛谷-数据结构1-4-图的基本应用2
开发语言·数据结构·算法·深度优先·动态规划·图论
吴可可12311 小时前
C#合并首尾相连多段线实战
算法·c#