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;