30、百錢買百雞問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一,百錢買百雞,問雞翁、母、雛各幾何?
//百錢買百雞問題:雞翁一值錢五,雞母一值錢三,
//雞雛三值錢一,百錢買百雞,問雞翁、母、雛各幾何?
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
//int main()
//{
// clock_t start_time, end_time;
// int cock, hen, chick;
// start_time = clock();
// for(cock=0; cock<=20; cock++)
// for(hen=0; hen<34; hen++)
// //for(chick=0; chick<=300; chick+3)//直接加3,肯定爲整
// for(chick=0; chick<=300; chick++)
// if(chick%3 == 0)//小雞總價錢必須是3的倍數
// {
// if(cock*5+hen*3+chick/3==100)
// {
// cout << cock << "," << hen << "," << chick << endl;
// }
// }
// end_time = clock();
// cout << "time:" << clock() << endl;
// system("pause");
// return 0;
//}
int main()
{
//clock_t start_time, end_time;
int cock, hen, chick;
//start_time = clock();
for(cock=0; cock<=20; cock++)
for(hen=0; hen<34; hen++)
//for(chick=0; chick<=300; chick+3)//直接加3,肯定爲整 chick+3不是表達式
for(chick=0; chick<=300; chick+=3)//直接加3,肯定爲整
{
if(cock*5+hen*3+chick/3==100)
{
cout << cock << "," << hen << "," << chick << endl;
}
}
//end_time = clock();
//cout << "time:" << clock() << endl;
system("pause");
return 0;
}
附:C++獲取系統時間
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main()
{
time_t now = time(0);//1970 到目前經過秒數,時間起算零點1970年1月1日00點00分00秒
tm *ltm = localtime(&now);
cout << 1900+ltm->tm_year << endl;//ltm->tm_year表示1900年至今
cout << 1+ltm->tm_mon << endl;
cout << ltm->tm_mday << endl;
cout << ltm->tm_hour << ":" << ltm->tm_min << ":" << ltm->tm_sec << endl;
system("pause");
return 0;
}
總結
1、3個未知數,兩個約束條件,所以有多個答案;編程思路:用三個for()循環列出所有可能的cock,hen,chick的數量,判斷總價是否等於100;注意小雞的總價必須爲整數;
2、時間結構在庫ctime中,計算程序運行時間可以用clock();
3、三目運算符使用舉例:x < 0 ? y = 10 : z = 20;