分数 10
全屏浏览题目
切换布局
作者 老段
单位 成都锦城学院
1、中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
要求:
给出所有的解,每组解占一行
解的顺序:按“字典序”排列,即公鸡数少的在前;公鸡数相同,母鸡数少的在前。
输入格式:
无
输出格式:
cock=%d,hen=%d,chicken=%d\n
输入样例:
在这里给出一组输入。例如:
无
输出样例:
在这里给出相应的输出。例如:
cock=0,hen=25,chicken=75
cock=4,hen=18,chicken=78
cock=8,hen=11,chicken=81
cock=12,hen=4,chicken=84
方法一:
#include<stdio.h>
int main(){
方法一
for(int x=0;x<100;x++){
for(int y=0;y<100;y++){
for(int z=3;z<100;z+=3){
if((x*5+y*3+z/3)==100 && x+y+z==100){
printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);
}
}
}
}
return 0;
}
方法二:
#include<stdio.h>
int main(){
// 方法一
// for(int x=0;x<100;x++){
// for(int y=0;y<100;y++){
// for(int z=3;z<100;z+=3){
// if((x*5+y*3+z/3)==100 && x+y+z==100){
// printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);
// }
// }
// }
// }
// return 0;
// }
//方法二
for(int x=0;x<100;x++){
for(int y=0;y<100;y++){
//价格翻三倍 把小鸡拿出来 公鸡,母鸡,的价格 同时翻三倍
if(x*15+y*9+(100-x-y)==3*100 && (100-x-y)%3==0){
//判断价格 判断数量 小鸡的数量只能是3个3个的
printf("cock=%d,hen=%d,chicken=%d\n",x,y,100-x-y);
}
}
}
return 0;
}
这道题有两种方法 第一种的方法时间复杂度高
第二种方法使用的时间更少
下面这题跟这个是一样的 可以看看