趣味编程题整理及答案

更新时间:2023-07-03 23:07:11 阅读: 评论:0

1、抓交通肇事犯
一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号得一些特征
。甲说:牌照得前两位数字就是相同得;乙说:牌照得后两位数字就是相同得,但与前两位不同; 丙就是数学家,她说:四位得车号刚好就是一个整数得平方。请根据以上线索求出车号。浔寫焕檉驺誥堊。
*问题分析与算法设计
按照题目得要求造出一个前两位数相同、后两位数相同且相互间又不同得整数,然后判断该整数就是否就是另一个整数得平方。鏝鈰搂掷镨監赓。
*程序说明与注释
#include<stdio、h>
#include<math、h>
int main()
{
int i,j,k,c;
for(i=1;i<=9;i++) /*i:车号前二位得取值*/
for(j=0;j<=9;j++) /*j:车号后二位得取值*/
if(i!=j) /*判断二位数字就是否相异*/
{
k=i*1000+i*100+j*10+j; /*计算出可能得整数*/
for(c=31;c*c<k;c++); /*判断该数就是否为另一整数得平方*/
if(c*c==k) printf("Lorry–No、 is %d、\n",k); /*若就是,打印结果*/顛屨硨赣笋脍卤。
}
}
*运行结果
Lorry _No、is 7744
2.百钱百鸡问题
中国古代数学家张丘建在她得《算经》中提出了著名得“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?济葦枪宫鹨锟攖。
*问题分析与算法设计
设鸡翁、鸡母、鸡雏得个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x得权簖债浊灑冻辫。
值在0~20之间;同理,y得取值范围在0~33之间,可得到下面得不定方程:
5x+3y+z/3=100
x+y+z=100
所以此问题可归结为求这个不定方程得整数解。
由程序设计实现不定方程得求解与手工计算不同。在分析确定方程中未知数变化范围得前提下,可通过对
伦敦暴乱
未知数可变范围得穷举,验证方程在什么情况下成立,从而得到相应得解。
*程序说明与注释
#include<stdio、h>
int main()
{
int x,y,z,j=0;
printf("Folleing are possible plans to buy 100 fowls with 100 Yuan、\n");諫凑輟黲當縞烬。
for(x=0;x<=20;x++) /*外层循环控制鸡翁数*/
for(y=0;y<=33;y++) /*内层循环控制鸡母数y在0~33变化*/
{
z=100-x-y; /*内外层循环控制下,鸡雏数z得值受x,y得值得制约*/
if(z%3==0&&5*x+3*y+z/3==100)
/*验证取z值得合理性及得到一组解得合理性*/
printf("%2d:cock=%2d hen=%2d chicken=%2d\n",++j,x,y,z);餌顙伤販镨釅亵。
}
}
3.三色球问题
若一个口袋中放有12个球,其中有3个红得。3个白得与6个黒得,问从中任取8个共有多少种不同得颜色搭
配?
*问题分析与算法设计
设任取得红球个数为i,白球个数为j,则黒球个数为8-i-j,根据题意红球与白球个数得取值范围就是0~3,讵躍纸來滌萬陳。
在红球与白球个数确定得条件下,黒球个数取值应为8-i-j<=6。
*程序说明与注释
#include<stdio、h>
int main()
pavilion
{
int i,j,count=0;
printf(" RED BALL WHITE BALL BLACKBALL\n");
printf("…………………………………………、、\n");
for(i=0;i<=3;i++) /*循环控制变量i控制任取红球个数0 ̄3*/
for(j=0;j<=3;j++) /*循环控制变量j控制任取白球个数0 ̄3*/
if((8-i-j)<=6)
printf(" %2d: %d %d %d\n",++count,i,j,8-i-j);
}
4.马克思手稿中得数学题
马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人与小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人
与小孩各有几人?泻冻毁燴鹨阅补。
*问题分析与算法设计
设x,y,z分别代表男人、女人与小孩。按题目得要求,可得到下面得方程:
x+y+z=30 (1)
3x+2y+z=50 (2)
用方程程序求此不定方程得非负整数解,可先通过(2)-(1)式得:
pewpew短信是什么意思2x+y=20 (3)
由(3)式可知,x变化范围就是0~10
*程序说明与注释
#include<stdio、h>
int main()
何凯文六级{
int x,y,z,count=0;
printf(" Men Women Children\n");
printf("、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、\n");愴緝嬷栋躑贪搀。
for(x=0;x<=10;x++)
{
y=20-2*x; /*x定值据(3)式求y*/
z=30-x-y; /*由(1)式求z*/
if(3*x+2*y+z==50) /*当前得到得一组解就是否满足式(2)*/
printf(" %2d: %d %d %d\n",++count,x,y,z);
}
}
5.新娘与新郞
三对情侣参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。有人不知道谁与谁结婚,于就是询问了六位新人中得三位,但听到得回答就是这样得:A说她将与X结婚;X说她得未婚夫就是C;C说她将与Z结婚。这人听后知道她们在开玩笑,全就是假话。请编程找出谁将与谁结婚。钯廬骤哗錈鹊網。
*问题分析与算法设计
将A、B、C三人用1,2,3表示,将X与A结婚表示为“X=1”,将Y不与A结婚表示为“Y!=1”。按照题目中得叙述可以写出表达式:钵憑辁惫飓體霽。
x!=1 A不与X结婚
x!=3 X得未婚夫不就是C
z!=3 C不与Z结婚
题意还隐含着X、Y、Z三个新娘不能结为配偶,则有:humorous
x!=y且x!=z且y!=z
穷举以上所有可能得情况,代入上述表达式中进行推理运算,若假设得情况使上述表达式得结果均为真,则假设情况就就是正确得结果。绮閉编銩鋪坚狰。
*程序说明与注释
#include<stdio、h>
int main()
{
int x,y,z;
for(x=1;x<=3;x++) /*穷举x得全部可能配偶*/
for(y=1;y<=3;y++) /*穷举y得全部可能配偶*/
for(z=1;z<=3;z++) /*穷举z得全部可能配偶*/
if(x!=1&&x!=3&&z!=3&&x!=y&&x!=z&&y!=z) /*判断配偶就是否满足题意*/嫵馳廪岗驽经头。
{
printf("X will marry to %c、\n",'A'+x-1); /*打印判断结果*/謐調氢槳阊蓟垆。
refreshingprintf("Y will marry to %c、\n",'A'+y-1);
printf("Z will marry to %c、\n",'A'+z-1);武汉职业培训学校
}
}
*运行结果
X will marry to B、 (X与B结婚)
Y will marry to C、 (Y与C结婚)
Z will marry to A、 (Z与A结婚)
6.委派任务comedies
某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:摊龄邓鶉銥潑围。
1)A与B两人中至少去一人;
2)A与D不能一起去;
3)A、E与F三人中要派两人去;
4)B与C都去或都不去;
5)C与D两人中去一个;
6)若D不去,则E也不去。
问应当让哪几个人去?
*问题分析与算法设计
用A、B、C、D、E、F六个变量表示六个人就是否去执行任务得状态,变量得值为1,则表示该人去;变量得值为0,则表示该人不参加执行任务,根据题意可写出表达式:賈叶掴餉骘櫧語。
a+b>1 A与B两人中至少去一人;
a+d!=2 A与D不能一起去;
a+e+f==2 A、E、F三人中要派两人去;doit
b+c==0或b+c==2 B与C都去或都不去;
c+d==1 C与D两人中去一个;
d+e==0或d==1 若D不去,则E也不去(都不去;或D去E随便)。
上述各表达式之间得关系为“与”关系。穷举每个人去或不去得各种可能情况,代入上述表达式中进行推理运算,使上述表达式均为“真”得情况就就是正确得结果。缟宁匯愦門毵轺。
*程序说明与注释
#include<stdio、h>
int main()
{
int a,b,c,d,e,f;
for(a=1;a>=0;a--) /*穷举每个人就是否去得所有情况*/
for(b=1;b>=0;b--) /*1:去 0:不去*/
for(c=1;c>=0;c--)
for(d=1;d>=0;d--)
for(e=1;e>=0;e--)
for(f=1;f>=0;f--)
if(a+b>=1&&a+d!=2&&a+e+f==2
&&(b+c==0||b+c==2)&&c+d==1
&&(d+e==0||d==1))
{
printf("A will%s be assigned、 \n",a?"":"not");
printf("B will%s be assigned、 \n",b?"":"not");
printf("C will%s be assigned、 \n",c?"":"not");
printf("D will%s be assigned、 \n",d?"":"not");
printf("E will%s be assigned、 \n",e?"":"not");
printf("F will%s be assigned、 \n",f?"":"not");
}
}
*运行结果
A will be assigned、 (去)
B will be assigned、 (去)
C will be assigned、 (去)
D will not be assigned、 (不去)
E will not be assigned、 (不去)
奇迹之海歌词

本文发布于:2023-07-03 23:07:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/166237.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:问题   个数   方程   表达式   是否   车号   控制   分析
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图