已知公鸡5元1只,母鸡3元1只,小鸡1元3只。现用n元钱买n只鸡,问总共有几种买法?各种买法的公鸡、母鸡、小鸡各多少只(某种鸡可以为0只)? 用C++写出代码
时间: 2023-11-26 16:19:08 浏览: 76
以下是用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。最后输出总共有几种买法即可。
相关问题
已知公鸡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只。
使用c语言实现已知公鸡5元1只,母鸡3元1只,小鸡1元3只。现用n元钱买n只鸡,问总共有几种买法?各种买法的公鸡、母鸡、小鸡各多少只(某种鸡可以为0只)?
以下是使用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int n, count = 0;
for (int x = 0; x <= n / 5; x++) { // 公鸡数量
for (int y = 0; y <= (n - 5 * x) / 3; y++) { // 母鸡数量
int z = n - x - y; // 小鸡数量
if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == n) { // 若满足条件
printf("%d: %d只公鸡,%d只母鸡,%d只小鸡\n", ++count, x, y, z);
}
}
}
printf("总共有%d种买法\n", count);
return 0;
}
```
上述代码中,通过两个嵌套的循环枚举公鸡和母鸡的数量,然后计算出小鸡的数量。接着判断小鸡的数量是否是3的倍数,并且总钱数是否等于n。如果满足条件,则输出当前的买法。
最后输出总共的买法数量即可。
阅读全文