精华内容
下载资源
问答
  • 数字游戏 C语言

    2020-11-17 06:53:10
    中国古代民间有这样一个游戏:两个人从1开始轮流报数,每人每可报一个数或两个连续的数,谁先报到30,谁为胜方。现在小张和小王一起玩这个游戏,小张先报,已知两边的决策都无懈可击,你知道谁是必胜者吗?现在由...

    报数字游戏

    问题描述

    中国古代民间有这样一个游戏:两个人从1开始轮流报数,每人每可报一个数或两个连续的数,谁先报到30,谁为胜方。现在小张和小王一起玩这个游戏,小张先报,已知两边的决策都无懈可击,你知道谁是必胜者吗?现在由系统给出一个新的目标数,请你给出对应的必胜者姓名。

    输入

    输入为一个int类型的正整数,对应游戏的目标数

    输出

    若小张必胜,输出"Zhang",若小王必胜,输出"Wang"

    解答

    #include <stdio.h>
    int main()
    {
        int a;
        scanf("%d", &a);
        if(a%3==0) printf("Wang");
        else printf("Zhang");
        return 0;
    }
    
    

    总结

    仔细观察归纳便可得出答案,当目标数为30时,想赢必须踩到27,24,21…以此类推,当目标数为3的倍数时,后手便能赢,当目标数不为3的倍数时,先手便能赢。

    题源:苏小红《C语言程序设计》

    展开全文
  • 北京师范大学珠海分校Judge Online of ACM ICPC1269 报数游戏C语言版#include int main(){ int i,n,a[101],k,b[101]; while(1){ for (i=1;i scanf("%d",&n); if (n==0) break; for (i=1;i"%d",&a[i
    北京师范大学珠海分校
    Judge Online of ACM ICPC
    1269 报数游戏
    C语言版
    1. #include <stdio.h>

    2. int main(){
    3.     int i,n,a[101],k,b[101];
    4.     while(1){
    5.         for (i=1;i<=100;i++) b[i]=0;
    6.         scanf("%d",&n);
    7.         if (n==0) break;
    8.         for (i=1;i<=n;i++) scanf("%d",&a[i]);
    9.         while(1){
    10.             scanf("%d",&k);
    11.             if (k==-1) break;
    12.             for (i=1;i<=n;i++)
    13.                 if (k==a[i]){
    14.                     b[i]=1;
    15.                     break;
    16.                 }
    17.         }
    18.         for (i=1;i<=100;i++)
    19.             if (b[i]==1) printf("%d ",i);
    20.         printf("/n");
    21.     }
    22.     return 0;
    23. }

    展开全文
  • 从 1 开始报数,报到 m 的人退出圈子,下一个人继续从 1 开始报数(m <= n);如此循环,一直到最后一人。 要求:输出每个人退出的顺序序号 例如 输入:n = 3 ,m = 1; 输出:3,1,2 核心:构造一个两倍长度的...

    规则: n 人围成一圈,按照顺序给标上 1 到 n 的序号;从 1 开始报数,报到 m 的人退出圈子,下一个人继续从 1 开始报数(m <= n);如此循环,一直到最后一人。

    要求:输出每个人退出的顺序序号

    例如
    输入:n = 3 ,m = 1;
    输出:3,1,2

    核心:构造一个两倍长度的数组,首尾相接,模拟圆圈的情景

    算法演示:
    语言不好描述,看图吧,(建议结合程序一起看,更好理解)
    演示

    void Game(int n, int m, int Sort[]) {
        //重点:**两倍长度的数组**
        int N[2*n];
        for(int i = 0; i < n; i++) {
            //初始化数组
            if(i == 0) {
                for(int j = 0; j < n; j++) {
                    N[j] = j+1;
                    N[j+n] = j+1;
                }
            }
            else {
                int a=m%(n-i+1);//报到 m 的人的下一个的位置,也就是下一次报数的开始
                
                int New[n-i];//报到 m 的人退出后,新形成的序列
                
                for(int j = 0; j < 2*(n-i+1); j++) {//**将 N 的部分数组传给 New**
                    if(j >= a && j < a+n-i ){
                        New[j-a] = N[j];
                    }
                }
                //记录 m 值
                if(a!=0){ 
                    Sort[i-1] = N[abs(a-1)];
                }
                else{
                    Sort[i-1] = N[n-i];//特殊点,当 a=1时,(a-1)为负数
                }
                
                //使用 New 重新定义 N 前 2*(n-i)个值
                for(int j = 0; j < n-i; j++) {
                    N[j] = New[j];
                    N[j+n-i] = New[j];
                }
    
    			//下一次循环 n-i=0,程序将不再执行,于是在此处直接输出最后的 m 值
                if(n-i==1){
                    out[i] = N[1];
                    break;
                }
            }
        }
    }
    
    展开全文
  • C语言 报数游戏

    2020-12-20 14:31:02
    怎么用C语言写这道题!! 有没有大佬教教我。。。[img=https://img-bbs.csdn.net/upload/202012/20/1608445860_384104.png][/img][img=https://img-bbs.csdn.net/upload/202012/20/1608445861_505251.png][/img]
  • 甲乙丙丁决定玩一个报数游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。 此外大家约定,在总共报出了n个数后(不计入被跳过的数)游戏结束。现在需要你...

    CSP:201912-1 报数

    [题目描述]

    甲乙丙丁决定玩一个报数的游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。
    此外大家约定,在总共报出了n个数后(不计入被跳过的数)游戏结束。现在需要你来帮忙统计,游戏过程中每个人各自跳过了几次。

    [输入格式]

    从标准输入读入数据。
    输入仅一行,包含一个正整数n,表示报出了多少个数后游戏结束。

    [输出格式]

    输出到标准输出。
    输出共四行,每行一个整数,依次表示甲乙丙丁四人在游戏过程中跳过的次数。

    [样例1输入]

    20

    [样例1输出]

    2
    1
    1
    0

    [样例1解释]报数过程为:

    甲:1,乙:2,丙:3,丁:4
    甲:5,乙:6,丙:跳过,丁:8
    甲:9,乙:10,丙:11,丁:12
    甲:13,乙:跳过,丙:15,丁:16
    甲:跳过,乙:18,丙:19,丁:20
    甲:跳过,乙:22,丙:23,丁:24

    在丁报出24后,四个人总计报出了20个数,游戏结束。

    [样例2输入]

    66

    [样例2输出]

    7
    5
    11
    5

    [子任务]

    ●测试点1、2、3、4和5,保证n≤10210^2
    ●测试点6、7、8、9和10,保证n≤666.

    [写法示例]
    #include<stdio.h>
    int main()
    {
     int n,x,y,j[4]={0};
     scanf("%d",&n);
     for(x=0,y=1;x<n;y++)
         if(y%7==0||y/10%10==7||y%10==7||y/100==7)
             if(y%4==1)
                 j[0]++;
             else if(y%4==2)
                 j[1]++;
             else if(y%4==3)
                 j[2]++;
             else j[3]++;
         else x++;
     for(x=0;x<4;x++)
         printf("%d\n",j[x]);
     return 0;
    }//n<666,但所报数字可能大于699. 
    展开全文
  • csp 报数 C语言

    千次阅读 2021-02-05 21:09:46
    甲乙丙丁决定玩一个报数游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要爆出的数是7的倍数或含有数字7则直接跳过。 此外大家约定,在总共报出了n个数后(不计入被跳过的数)游戏结束。现在需要...
  •   甲乙丙丁决定玩一个报数游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。   此外大家与欸的那个,在总共报出了n个数后(不计入被跳过的数)游戏...
  • C语言C语言程序设计》苏小红 第七章习题7.11 报数游戏
  • #CSP 201912-1 报数C语言)(100分)

    千次阅读 2019-12-18 19:48:35
    甲乙丙丁决定玩一个报数游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。 此外大家约定,在总共报出了n个数后(不计入被跳过的数)游戏结束。现在需要...
  • 报数问题(C语言

    千次阅读 2020-07-16 15:23:19
    报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每个...
  • C语言报数

    2020-12-29 23:40:00
    报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每...
  • C语言是面向过程的,而C++是面向对象的C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)...
  • Linux环境下C语言实现报数游戏

    千次阅读 2012-10-25 11:08:11
    从第一个人开始报数报数 m 的人退出圈子,下一个人从 1 开始重新报数报数 m 的人退出圈子。如此循环,直到留下最后一个人。请按退出顺序输出退出圈子的人的编号,以及最后一个人的编号。 [liul@...
  • 第一个人从1开始报数,每报数位m的人被从圈中推测,其后的人再次从1开始报数,重复上述过程,直至所有人都从圈中退出。 实例解析:  用链表求解本问题,先由n形成一个有n个表元组成的环,其中n个表元依此置值1~n...
  • 栋栋正在和同学们玩一个数字游戏游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。...例如,当k=13时,栋栋和同学们出的前...
  • #include <stdio.h> int main(){ int n,k,m,j,i=0,num=1; scanf("%d%d",&n,&k); int *children; children=(int *)malloc(n*sizeof(int)); for(j=0;j<n;j++){ childr...
  • C语言经典-报数问题

    2021-04-05 21:26:04
    他们按编号大小从小到大依次顺时针围成一个圈,第一个小朋友开始报1,顺时针方向报数加1,报m的人会离开,下一个小朋友继续报1,直到只剩一个小朋友。 输入: 两个正整数n,m(均不超过1000) 输出: 最后一个小朋友...
  • C语言解决 n个人 123报数问题 题目: 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 圈子,问最后留下的是原来第几号的那位。 编程思路 此游戏的关键问题在于解决 n个人围成一圈。...
  • 简单c语言猜数字游戏

    2019-10-16 19:25:40
    然后我们猜数的一方,根据自己出的数字,结合被猜者判断后反馈给我们的信息,我们再重新确定范围后再一次猜数。依次循环,知道被猜者反馈给我们猜对了的信息后。猜数游戏才结束。 如果交由计算机来做的话。我们...
  • 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每个...
  • C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程...
  • 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每个...
  • 这道题目是我们在日常生活中也能经常见到的一种报数游戏。首先我们先分析一下游戏的核心——轮流报数 这个过程的本质是什么呢?我们分析一下游戏的过程。 我们先举一个实例:假如有5个人 分别为ABCDE 第一轮:A报1...
  • @[TOC] 第一种方法 数组 // 更新 2019.10.28 ... 先贴上时隔半年更新后的代码, // 完全独立的新思路, debug二十多分钟搓出来的, 虽然看起来比原来的长, 时间复杂度也有上升 ... 但毕竟是完全属于自己的...u...
  • 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每个...
  • 2.题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成 3.题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 ...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 213
精华内容 85
关键字:

报数游戏c语言

c语言 订阅