第四章习题

例题4-3

 1 #include<stdio.h>
 2
 3 #define maxn 25
 4 int n, k, m, a[maxn];
 5
 6 int go(int p,int d,int t)
 7 {
 8     while(t--)
 9     {
10         do
11         {
12
13             p = (p+d-1+n) % n+1 ;
14
15         }while(a[p]==0);
16     }
17
18     printf("(%d %d)\n",p,d);
19
20     return p;
21 }
22
23 int main()
24 {
25     while(scanf("%d%d%d", &n, &k, &m) == 3 && n)
26     {
27         for(int i = 1; i <= n; i++)
28             a[i] = i;
29         int left = n; //还剩下的人数
30         int p1 = n, p2 = 1;
31         while(left)
32         {
33             p1 = go(p1, 1, k);
34             p2 = go(p2, -1, m);
35             printf("%3d", p1);
36             left--;
37             if(p2 != p1)
38             {
39                  printf("%3d", p2); left--;
40             }
41             a[p1] = a[p2] = 0;
42             if(left)
43                 printf(",");
44         }
45         printf("\n");
46         }
47         return 0;
48 }

这里最要注意的是13行的移动一位的操作,p = (p+d-1+n) % n+1 是为了在1-n 之间循环 如果是在0 -n 之间循环应该写为 p=(p+d+n)%n

时间: 2024-10-13 12:11:54

第四章习题的相关文章

Python核心编程(第二版) 第四章习题答案

4-1.Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下.答:与所有Python对象有关的三个属性是身份.类型.值.身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址.类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么规则.可以用内建函数type()来查看Python的类型.值:对象表示的数据项.4-2.类型.不可更改(immutable)指的是什么?Pyth

第四章习题:斐波那.契数列&amp;&amp;吸血鬼数字

package com.twoslow.cha4; /** * 斐波那契数列:从3个数字起,每一个数都是前2个数之和:1 1 2 3 5 8 13... * @author sai * */ public class Fibonacci { public static void main(String[] args) { for(int i = 0 ; i < 10 ;i++) { System.out.print(fib(i) + "."); } } public static

统计学习导论:基于R应用——第四章习题

第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0.1*0.1)/(1*1),所以答案是1% (c) 其实就是个空间所占比例,所以这题是(0.1**100)*100 = 0.1**98% (d) 这题答案显而易见啊,而且是指数级别下降 (e) 答案是0.1**(1).0.1**(1/2).0.1**(1/3)...0.1**(1/100) 5. 这题

C和指针 第十四章 习题

14.1 打印函数 #include <stdio.h> void print_ledger_long(){ printf("function print_ledger_long\n"); } void print_ledger_detailed(){ printf("function print_ledger_detailed\n"); } void print_ledger_default(){ printf("function print

Objective-C 程序设计(第六版)第四章习题答案

1.   非法常量 0x10.5    0X0G1    98.7U    17777s    0996    1.2Fe-7    15,000    . 2. //只需要列出表达式就可以 int F = 27; //设置F为华氏温度,赋值 27 float C ; //设置C为摄氏温度,类型为浮点类型 C = (F-32)/1.8; NSLog(@"%.1f",C); // %.1f 保留一位小数就可以 //输出结果 2014-09-17 14:58:48.259 prog1[60

apue第四章习题的一些拙见(不定时更新)

写在前面:最近要期末考试,看来真的是要不定时更新啦XD apue4.1: 由于在这里lstat是不跟随符号文件的,而stat是跟随符号文件的,这样一来,如果使用stat,而不使用lstat那么就无法观察到符号文件.在书上4.3姐中有提到. apue4.2: 首先我在ubuntu的shell上查看原来的umask是多少,结果是0002,这里touch一个文件是不确定的,但是其他者的权限中写的权限一定是没有的.因为创建一个文件所拥有的权限不光与umask有关还与应用程序自身在创建的时候使用的参数有关

python核心编程-第四章-习题

1.身份.类型.值.其中,身份是每个对象的标识,与内存地址密切相关,可用id()返回:类型决定了对象可以保存什么类型的值,用type()函数.isinstance()函数可以得到对象的类型:值就是对象表示的数据 2.不可更改指对象创建以后值不可以更新.python中,列表.字典是可更改的,数字.字符串.元组是不可更改的 3.类型 字符串.列表.元组是按照顺序访问的,也就是具有切片的特性. 映射类型(字典)类似序列的索引,但它的索引不是按顺序的数字来切片,而是通过一个唯一的键或者说关键字来访问,容

具体数学第二版第四章习题(2)

16 $\frac{1}{e_{1}}=\frac{1}{2},\frac{1}{e_{1}}+\frac{1}{e_{2}}=\frac{5}{6},\frac{1}{e_{1}}+\frac{1}{e_{2}}+\frac{1}{e_{3}}=\frac{41}{42}$,由此猜测$\sum_{i=1}^{k}\frac{1}{e_{i}}=\frac{e_{k+1}-2}{e_{k+1}-1}$ 假设前$n$项都成立,即$\sum_{i=1}^{n}\frac{1}{e_{i}}=\fra

具体数学第二版第四章习题(4)

46 (1)假设$j^{'}j-k^{'}k=Gcd(j,k)$,那么有$n^{j^{'}j}=n^{k^{'}k}n^{Gcd(j,k)}$,所以如果$n^{j^{'}j}=pm+1,n^{k^{'}k}=qm+1\rightarrow n^{Gcd(j,k)}=rm+1$ (2)假设$n=pq$并且$p$是$n$的最小素因子(如果$n$为素数那么$p=n$).所以$2^{p-1}\equiv 1(mod(p))$.如果$2^{n}\equiv 1(mod(n))\rightarrow 2^{