友情提示:380元/半年,儿童学编程,就上码丁实验室。
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡”问题:鸡翁1,值钱5,鸡母1,值钱3,鸡雏3,值钱1,百钱买百鸡,问:翁、母、雏各几何?
思路:
使用循环对三种鸡的数量在事先设定好的范围内进行穷举并判断,如果满足条件则输出,否则继续下一轮循环。
根据题意,100元全买公鸡,最多买20只;如果全买母鸡,最多买33只;如果全买小鸡,最多买99只。判断条件则为以下三点:
1、所买三种鸡的钱数总和为100;
2、所买三种鸡的数量之和为100;
3、所买的小鸡数必须是3的倍数。
C语言:
void main()
{
int cock, hen, chick;/*定义变量为基本整型*/
for (cock = 0; cock <= 20; cock++)/*公鸡范围在0到20之间*/
{
for (hen = 0; hen <= 33; hen++)/*母鸡范围在0到33之间*/
{
for (chick = 3; chick <= 99; chick++)/*小鸡范围在3到99之间*/
{
if (5 *cock + 3 * hen + chick / 3 == 100) /*判断钱数是否等于100*/
{
if (cock + hen + chick == 100) /*判断购买的鸡数是否等于100*/
{
if (chick % 3 == 0) /*判断小鸡数是否能被3整除*/
{
printf(“公鸡:%d 母鸡:%d 小鸡:%dn”, cock, hen,chick);
}
}
}
}
}
}
}
C++语言:
int _tmain(int argc, _TCHAR* argv[])
{
int cock, hen, chick;/*定义变量为基本整型*/
for (cock = 0; cock <= 20; cock++)/*公鸡范围在0到20之间*/
{
for (hen = 0; hen <= 33; hen++)/*母鸡范围在0到33之间*/
{
for (chick = 3; chick <= 99; chick++)/*小鸡范围在3到99之间*/
{
if (5 *cock + 3 * hen + chick / 3 == 100) /*判断钱数是否等于100*/
{
if (cock + hen + chick == 100) /*判断购买的鸡数是否等于100*/
{
if (chick % 3 == 0) /*判断小鸡数是否能被3整除*/
{
cout << “公鸡:” << cock << “母鸡:” << hen << “小鸡:” << chick << endl;
}
}
}
}
}
}
return 0;
}
转自公众号:
南昌青少年编程