1. 程式人生 > >程式基本演算法習題解析 百錢買百雞問題

程式基本演算法習題解析 百錢買百雞問題

題目:

百錢買百雞問題:公雞每隻5元,母雞每隻3元,小雞3只一元。現有100元錢要求買100只雞,問小雞、公雞、母雞各多少隻?

附上程式碼:

// Chapter5_5.cpp : Defines the entry point for the application.
// 百錢買百雞問題
// 公雞每隻5元,母雞每隻3元,小雞3只一元。
// 現有100元錢要求買100只雞,問小雞、公雞、母雞各多少隻

#include "stdafx.h"
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int x,y,z,sum=100,count=100;
	for(x=0;x<=100;x++)
		for(y=0;y<=100;y++)
			for(z=0;z<=100;z++)
			{
				//特別注意z%3 == 0這個條件
				if(z%3 == 0 && x+y+z == 100 && 5*x+3*y+z/3 == 100)
				{
					cout << "公雞買 " << x << "只" << ' ';
					cout << "母雞買 " << y << "只" << ' ';
					cout << "小雞買 " << z << "只" << endl;
				} 
			}
	system("pause");
	return 0;
}

需要注意的是z%3 == 0這個條件,因為x,y,z是int型別的,不管z是不是3的倍數,z/3都會是整數,但實際上,z肯定應該是3的整數,因此加了一個z%3 == 0條件。當然,如果不加這個條件,將x,y,z的型別改為float型別,也是可以的。

執行結果如下: