鸡兔同笼问题

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

C语言编程-鸡兔同笼问题
2009-11-07 23:05
#include<stdio.h>

void main()
{
int chicken,rabbit,ani_total,total_foot;
printf("输入笼中生命的个数: ");
scanf("%d",&ani_total);
printf("输入生命的总脚数: ");
scanf("%d",&total_foot);
for(chicken=0;chicken<=total_foot/2;chicken++)
{
rabbit=ani_total-chicken;
if(4*rabbit+2*chicken==total_foot)
break;
}
更简便的一种算法:
#include <stdio.h>
void main()
{
int num,num_ji,num_jiao;
printf ("请输入兔子与鸡的总数:");
scanf ("%d",&num);
printf ("请输入它们脚的总数:");
scanf ("%d",&num_jiao);
for (num_ji=0;num_ji<=num;num_ji++){
if ((num_ji*2+(num-num_ji)*4)==num_jiao){
printf ("鸡的数量为:%d,兔子的数量为:%d。",num_ji,num-num_ji);
break;
}
}
if (num_ji==num+1) printf ("无法计算出结果!");
}
if(chicken==total_foot/2+1) printf("错误,无法求出结果");
else
{
printf("鸡的数量是 %d\n",chicken);
printf("兔的数量是 %d\n",rabbit);
}
}

这是华为编程题,我去打了下酱油。。。
把题目都给你们看下吧
1、 农场计数问题(20分)

l 问题描述

已知某农场中有一群鸡和兔子,总共有M个头和N只脚,计算总共有多少鸡和兔子

l 要求实现函数

int GetFowlsNum(int iHeadNum, int iFootNum, int *iChickenNum, int *iRabbitNum)

【输入】iHeadNum: 总共头的数量

iFootNum: 总共脚的数量

【输出】iChickenNum: 鸡的数量

iRabbitNum: 兔子的数量

【返回】 0: 找到符合要求的鸡和兔子的数量

-1: 未找到符合要求的数量

l 示例

输入:iHeadNum =201, iFootNum=604

输出:iChickenNum=100, iRabbitNum=101

返回:0



输入:iHeadNum =201, iFootNum=123

输出:iChickenNum=0, iRabbitNum=0

返回:-1



2、字符串压缩(30分)

l 问题描述

将给定的字符串,按照规格压缩,输出压缩后的字符串。压缩规格为:相同字符连续,则压缩为“字符+数字个数”,如”aaaa”压缩为”a4”

注:

1、仅是单个字符连续才压缩,如babababa则不能压缩

2、待压缩字符串中不包含数字和转义符

l 要求实现函数

void CompressStr(const char *SrcStr, char *DstStr)

【输入】SrcStr: 待压缩的字符串

【输出】DstStr: 压缩后的字符串

【返回】无

l 示例

输入:SrcStr =”aaacccddef”

输出:DstStr=”a3c3d2ef”



3、路径查找(50分)

l 问题描述

给定N*N字母矩阵,从任意点出发,上,下,左,右移动,在规定方向连续匹配给定的单词序列。即称为命中,否则

不命中,
字符矩阵中的字母仅能使用一次,不能在同一单元格停留两次。字符矩阵最大50*50,都为大写字母。输入1为字母矩阵,输入2为字母序列,输出是否匹配。

l 要求实现函数

int FindStat(const char *Map, unsigned int iArrN, const char *PathStr)

【输入】Map: 给定的字母矩阵

iArrN: 字母矩阵的行数

PathStr: 给定的字母序列

【输出】无

【返回】是否能找到命中的单词序列,命中返回1,否则返回0
注:输入矩阵是以一维形式保存的二维数组,
比如输入为{‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’,’G’, ‘H’, ‘I’},
实际上表示如下3*3的矩阵
‘A’,’B’,’C’,
‘D’,’E’,’F’,
‘G’,’H’,’I’
l 示例
输入:"ABCFEDGHI", 3, "ABCDEFGHI"
返回:1
输入:"ABCFEDGAI", 3, "ABCDEA"
返回:1
输入: "ABABABABABABABABABABABABA", 5, "ABABABBA"
返回: 0
输入: "AAAA", 2, "AAAA"
返回:1


相关文档
最新文档