题目描述
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?
输入描述
输入一个正整数n(n<=100)。
输出描述
如果有解,种组合占一行,包含公鸡、母鸡、小鸡的个数,用正整数表示,每个数据占4列。公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。如果无解,输出“No Answer”。
输入样例
100
输出样例
0 25 75
4 18 78
8 11 81
12 4 84
C++按列输出、对齐输出、文本对齐输出、输出对齐
cout << setw(15) << std::right << "tbc" << " " << setw(15) << std::right << "ef" << " " << setw(15) << std::right << "gh" << endl;
cout << setw(15) << std::right << "22222" << " " << setw(15) << std::right << "e343f" << " " << setw(15) << std::right << "g55h" << endl;
cout << setw(15) << std::right << "123456789012345" << " " << setw(15) << std::right << "123
这里图方便使用C语言
#include <stdio.h>
#define TRUE 1
#define FALSE 0
int main(void)
{
int x, y, z, n, NoAnswer;
scanf("%d", &n);
NoAnswer = TRUE;
for(x = 0; x <= n/5; x++) //公鸡个数
for(y = 0; y <= n/3; y++) //母鸡个数
{
z = n - x - y; //鸡仔
if(15 * x + 9 * y + z == n *3 )
{
printf("%4d%4d%4d\n", x, y, z);
NoAnswer = FALSE;
}
}
if(NoAnswer == TRUE)
printf("No Answer\n");
return 0;
}
注意避免浮点运算