题目描述
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?
输入
输入一个正整数n(n<=100)。
输出
如果有解,种组合占一行,包含公鸡、母鸡、小鸡的个数,用正整数表示,每个数据占4列。公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。如果无解,输出“No Answer”。
样例输入 Copy
100
样例输出 Copy
0 25 75
4 18 78
8 11 81
12 4 84
源码:(写个方程式就行)
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
struct chiken
{
int Rooster;
int hens;
int child;
chiken* next;
};
int main() {
int n;
cin >> n;
chiken* head;
chiken* p;
chiken* t;
p = new chiken();
head = p;
t = p;
for (int i = 0;i <= n;i++) {
if ((n - (7 * i)) % 4 == 0 &&(n-(7*i))>=0) {
p = new chiken();
p->Rooster = i;
p->hens = (n - 7 * i) / 4;
p->child = n - p->hens - p->Rooster;
t->next = p;
t = t->next;
}
}
head = head->next;
if (head == nullptr) {
cout << "No Answer";
}
else
{
while (head != nullptr) {
cout << setiosflags(ios::right);
cout << setw(4) << head->Rooster << setw(4) << head->hens << setw(4) << head->child << endl;
head = head->next;
}
}
}