使用c语言实现已知公鸡5元1只,母鸡3元1只,小鸡1元3只。现用n元钱买n只鸡,问总共有几种买法?各种买法的公鸡、母鸡、小鸡各多少只(某种鸡可以为0只)? 输入格式: 输入一个整数n(100<=n<=10000)。 输出格式: 先输出买法总数,再按公鸡、母鸡、小鸡的数量(按公鸡数从小到大的顺序)逐行输出各种买法(每行数据之间空一个空格)。 输入样例: 例如: 100 输出样例: 例如: 4 0 25 75 4 18 78 8 11 81 12 4 84
时间: 2024-03-05 13:47:51 浏览: 35
以下是使用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int n, count = 0;
scanf("%d", &n);
for (int i = 0; i <= n / 5; i++) { // 公鸡数量
for (int j = 0; j <= n / 3; j++) { // 母鸡数量
int k = n - i - j; // 小鸡数量
if (k % 3 == 0 && i * 5 + j * 3 + k / 3 == n) { // 满足条件
count++; // 方案数加1
}
}
}
printf("%d\n", count); // 输出方案总数
for (int i = 0; i <= n / 5; i++) { // 公鸡数量
for (int j = 0; j <= n / 3; j++) { // 母鸡数量
int k = n - i - j; // 小鸡数量
if (k % 3 == 0 && i * 5 + j * 3 + k / 3 == n) { // 满足条件
printf("%d %d %d\n", i, j, k); // 输出当前方案
}
}
}
return 0;
}
```
该程序的时间复杂度为 $O(n^2)$,可以通过本题。
阅读全文