《算法设计与分析》实验报告实验二

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉工程大学计算机科学与工程学院

《算法设计与分析》实验报告

实验内容

(2)猴子吃桃子问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了两个,第二天早上又将剩下的桃子吃掉一半,又多吃了两个,以后每天早上都吃了前一天剩下的一半零两个,到了第10天早上想再吃时,就只剩下两个桃子了,问第一天猴子摘了多少桃子?代码:

#include

void main()

{

int a=2,i;

for(i=8;i>=0;i--)

a=(a+2)*2;

printf("第一天猴子摘下%d个桃子\n",a);

}

测试:

(3)54张扑克牌,两个人轮流拿牌,每人每次最少取一张牌最多取4张牌,谁拿最后一张谁输。编写模拟计算机先拿牌且必胜的算法。

代码:

#include

void main()

{

int a,b,c,d,e,f;

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)

if(b!=a)

for(c=0;c<=9;c++)

if(c!=a&&c!=b)

for(d=0;d<=9;d++)

if(d!=a&& d!=b && d!=c)

{

e=a*1000+b*100+c*10+d;

f=(a+b+c+d)*(a+b+c+d);

if(e%f==0)

printf("%d%d%d%d\t",a,b,c,d);

}

printf("\n");

}

测试:

(8)寻找满足下列条件的四位数字:1.无重复数字;2.千位数字非零;3.能整除它的各个位数字和的平方。

代码:

#include

void main()

{

int i,c;

printf("游戏开始,计算机先拿牌!\n");

c=51;

printf("计算机拿3张!还剩%d张\n",c);

while(c>1)

{

printf("请你拿牌,选择拿牌的张数(1-4张)\n");

scanf("%d",&i);

c=c-5;

printf("计算机拿了%d张,还剩%d张\n",5-i,c);

}

printf("你拿最后一张,计算机赢了!\n");

}

测试:

#include

int amount=0, Board[100][100];

void Cover(int tr, int tc, int dr, int dc, int size); void OutputBoard(int size);

void main()

{

int size=1,x,y,k,i;

printf("输入K值:");

scanf("%d",&k);

for (i=1;i<=k;i++)

size=size*2;

printf("输入残缺个的位置x,y:");

scanf("%d%d",&x,&y);

Cover(0, 0, x, y, size);

OutputBoard(size);

Cover (tr, tc, tr+s-1, tc+s-1, s); //覆盖其余部分

Cover (tr, tc+s, tr+s-1, tc+s, s);

Cover(tr+s, tc, tr+s, tc+s-1, s);

}

}

void OutputBoard(int size)

{

for (int i = 0; i < size; i++)

{

for(int j=0; j < size; j++)

printf("%-4d",Board[i][j]);

printf("\n");

}

}

相关文档
最新文档