白鸡问题和搬砖问题这一类型"/>
百钱白鸡问题和搬砖问题这一类型
百钱白鸡问题
我国古代数学家张丘建在《算经》一书中提出的数学问题:
1只公鸡5个铜钱,1只母鸡3个铜钱,3只小鸡1个铜钱。现在有100个铜钱,要买100只鸡,每种鸡至少要买一只,问有几种买法?
输入
输出
公鸡=4只,母鸡=18只,小鸡=78只
公鸡=8只,母鸡=11只,小鸡=81只
公鸡=12只,母鸡=4只,小鸡=84只
1. #include<stdio.h>2. int main()3. {4. int g,m,x;5. for(g=1;g<=100;g++)6. {7. for(m=0;m<=100;m++)8. {9. for(x=0;x<=100;x++)10. { 11.if(g*5+m*3+x*1.0/3==100&&g+x+m==100)12.printf("公鸡=%d只,母鸡=%d只,小鸡=%d只\n",g,m,x);return 0;13. }14. }15. }
}
工地搬砖问题
工地搬砖问题:男人每人搬3块,女人每人搬2块,小孩2人搬一块,有多少种搬法用45人正好搬45块砖?
输入 无 输出
man=0,woman=15,child=30
man=3,woman=10,child=32
man=6,woman=5,child=34
man=9,woman=0,child=36
1. #include<stdio.h>2. int main(void)3. { 4. int child,men,wom;5. for(men=0;men<=45;men++){6. for(wom=0;wom<=45;wom++) { 7. for(child=0;child<=45;child++) { 8. if(men+child+wom==45&&men*3+wom*2+child*0.5==45) 9. printf("man=%d,woman=%d,child=%d\n",men,wom,child);}}}10. return 0;
}
这两个问题思路是一样的,通过一个循环,套另一个循环,找到一个变量,可以增加或者减少,内循环运行过程中,把符合的条件写出来,结束之后,再让外循环运行一次,再接着内循环的运行,如此反复。
更多推荐
百钱白鸡问题和搬砖问题这一类型
发布评论