1051数字四的游戏

本文介绍了使用C语言编程实现数字四的游戏过程,探讨了如何通过编程逻辑来创建这种数学益智游戏,包括数字组合与计算的算法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
/*
作者: 
厦门理工学院
    计算机与信息工程学院 FnLock

程序描述: 
一年一度的厦门理工学院程序设计大赛又开始了
今年是第四届。今年赛会组织方决定用一种新规则决定获胜的选手。
他们将参赛选手从1编号到N并围成一圈,从第一个人开始报数,
报到4的人退出,下一个人从 1 开始重新报数,报到4 的人退出。
如此循环,直到留下最后一个人,他就是获胜者。比如输入5----->得出1 

时间:2017年10月10日17:38:36
        17:38:48
*/
int main()
{
    int N;          //编号N 总共有N个人参与报数 
    scanf("%d",&N);//键盘输入数字N 
    int a[N+1];     //定义了一个有N+1个元素的数组 
    int i;
    int count=0;    //定义了一个计数器 
    int control=0;  //定义了一个控制器,下面会提到控制器的作用 
    for(i=0;i<=N;i++)//遍历数组 
    {
        a[i]=1;//将数组中的每一个元素初始化为1
                //目的是控制当元素为0时不参与报数 
    }
    for(i=1;control<N-1;i++)//每当有一个编号退出时 control控制器都会加一,直到只剩一个人,循环结束 
    {
        if(a[i]==1)//当元素还未退出时参与报数,
        {
            count++;//报数后计数器加一 

        }

        if(count==4)//当元素报数为4时 
        {
            a[i]=0;//报数为4此元素退出报数(元素标记为零) 
            count=0;//下一个从一开始报数 
            control++;//当编号报数为4时control控制器加一 ,及又多退出1人 
        }
        if(i==N)//报数报到最后一个 
        {
            i=0;//让他形成一个圈,重新从第一个接着报数(元素标记为0的自动不参与报数) 
        }
    }
    for(i=1;i<=N;i++)//遍历数组 
    {
        if(a[i]==1)//找出最后一个没有报到4的,此元素的数值为1 
        {
            printf("%d",i);//输出这个数
            break; 
        }
    }   




    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值