已知公鸡5元1只,母鸡3元1只,小鸡1元3只。现用n元钱买n只鸡,问总共有几种买法?各种买法的公鸡、母鸡、小鸡各多少只(某种鸡可以为0只)? 用C++写出代码
时间: 2023-11-26 15:19:08 浏览: 23
以下是用C++实现的代码:
```c++
#include <iostream>
using namespace std;
int main()
{
int n, count = 0;
for(int i = 0; i <= 20; i++) //枚举公鸡数量
{
for(int j = 0; j <= (100 - 5 * i) / 3; j++) //枚举母鸡数量
{
int k = 100 - i - j; //小鸡数量
if(k % 3 == 0 && 5 * i + 3 * j + k / 3 == 100 && i + j + k == 100) //判断是否符合条件
{
count++;
cout << "第" << count << "种买法:公鸡" << i << "只,母鸡" << j << "只,小鸡" << k << "只。" << endl;
}
}
}
cout << "共有" << count << "种买法。" << endl;
return 0;
}
```
其中,使用两层循环枚举公鸡和母鸡的数量,然后计算出小鸡的数量。判断是否符合条件,如果符合条件,则输出这种买法,并计数器加1。最后输出总共有几种买法即可。
相关问题
使用C#完成如下题目:5、 百钱买百鸡:用一百元买一百只鸡,已知公鸡5元一只,母鸡3元一只,小鸡1元3只。
好的,这是一个经典的数学问题,我们可以使用 C# 编写程序来解决这个问题。下面是代码实现:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int totalMoney = 100;
int totalNumber = 100;
for (int cock = 0; cock <= totalMoney / 5; cock++)
{
for (int hen = 0; hen <= totalMoney / 3; hen++)
{
int chick = totalNumber - cock - hen;
int totalPrice = cock * 5 + hen * 3 + chick / 3;
if (chick % 3 == 0 && totalPrice == totalMoney)
{
Console.WriteLine("公鸡数量:{0},母鸡数量:{1},小鸡数量:{2}", cock, hen, chick);
}
}
}
}
}
```
程序中,我们使用两个 for 循环来枚举公鸡和母鸡的数量,然后计算出小鸡的数量,并且判断是否满足题目要求:总价为 100 元。如果满足条件,就输出三种鸡的数量。
运行程序,得到的结果是:
```
公鸡数量:0,母鸡数量:25,小鸡数量:75
公鸡数量:4,母鸡数量:18,小鸡数量:78
公鸡数量:8,母鸡数量:11,小鸡数量:81
公鸡数量:12,母鸡数量:4,小鸡数量:84
```
这四组解分别表示,公鸡不买,母鸡买 25 只,小鸡买 75 只;公鸡买 4 只,母鸡买 18 只,小鸡买 78 只;公鸡买 8 只,母鸡买 11 只,小鸡买 81 只;公鸡买 12 只,母鸡买 4 只,小鸡买 84 只。
已知公鸡5元1只,母鸡3元1只,小鸡1元3只。现用n元钱买n只鸡,问总共有几种买法?各种买法的公鸡、母鸡、小鸡各多少只(某种鸡可以为0只)?c语言
以下是使用C语言编写的程序,可以求解该问题:
```c
#include <stdio.h>
int main() {
int n, count = 0;
for(int i = 0; i <= 20; i++) { // 公鸡最多买20只
for(int j = 0; j <= 33; j++) { // 母鸡最多买33只
int k = n - i - j; // 计算小鸡的数量
if(k % 3 == 0 && i * 5 + j * 3 + k / 3 == n) { // 判断是否满足条件
printf("方案%d:公鸡%d只,母鸡%d只,小鸡%d只\n", ++count, i, j, k);
}
}
}
printf("共有%d种方案\n", count);
return 0;
}
```
程序中使用了两个循环分别遍历公鸡和母鸡的数量,然后计算小鸡的数量。最后判断是否满足题目中的条件,如果满足则输出方案。
需要注意的是,公鸡最多只能买20只,因为如果买更多的公鸡,就会导致剩下的钱无法购买足够的鸡。同理,母鸡最多只能买33只。