复试C语言常考趣味程序方案
狼追兔子
1
巧夺偶数
2
五猴分桃
3
高次方数
4
借书方案
5
过桥问题
6
数制转换
7
打渔晒网
8
喝酒问题
9
哥德巴赫猜想
10
打印日历
11
抓交通肇事逃逸犯
12
反序数
13
新郎新娘
14
称重砝码
15
求车速
16
谁是窃贼
17
出售金鱼
18
百钱百鸡
19
谜语博士
20
猜牌术(-)
21
舍罕王的失算
22
怎样存钱利最大
23
猜牌术(二)
24
爱因斯坦的数学题
25
取火柴游戏
26
平分鱼和筐
27
可逆素数
28
三色球问题
29
抢n游戏
30
问题 A: 趣味程序设计_狼追兔子
时间限制: 1 Sec??内存限制: 128 MB提交: 341??解决: 63[ HYPERLINK "53/JudgeOnline/submitpage.php?cid=1004&pid=0&langmask=964" 提交][ HYPERLINK "53/JudgeOnline/problemstatus.php?id=1211" 状态][ HYPERLINK "53/JudgeOnline/bbs.php?pid=1211&cid=1004" 讨论版]
题目描述
一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?
输入
有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。
输出
兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。
样例输入
10
8
15
样例输出
2 4 7 9
2 4 5 7 8 9 11 12 14
提示
用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。
#include
#include
int ok[110];
int main()
{
????int n,s,i,find;
????while(scanf("%d",&n)!=EOF)
????{
????????memset(ok,0,sizeof(ok));
????????for(i=1;i<=200;i++)
????????????if(!ok[find=(i*(i+1)/2)%n])
????????????????if(find==0)
????????????????????ok[n]=1;
????????????????else
????????????????????ok[find]=1;
????????for(s=0,i=1;i<=n;i++)
????????????s+=ok[i];
????????for(i=1,find=0;i<=n;i++)
????????????if(!ok[i])
????????????{
????????????????if(find!=(n-s-1))
????????????????{
????????????????????printf("%d ",i);find++;
????????????????}
????????????????else
????????????????????printf("%d",i);
????????????}
????????printf("\n");
????}
????return 0;
}
问题 B: 趣味程序设计_巧夺偶数
时间限制: 1 Sec??内存限制: 128 MB提交: 174??解决: 73[ HYPERLINK "53/JudgeOnline/submitpage.php?cid=1004&pid=1&langmask=964" 提交][ HYPERLINK "53/JudgeOnline/problemstatus.php?id=1212" 状态][ HYPERLINK "53/JudgeOnline/bbs.php?pid=1212&cid=1004" 讨论版]
题目描述
桌子上有25颗棋子。游戏双方轮流取子,每人每次最少取走一颗棋子,最多可取走3颗棋子。双方照这样取下去,直到取光所有的棋