有30个人(包括男人、女人和小孩)在一家饭店吃饭共花50先令,其中每个男人花3先令,每个女人花2先令, 每个小孩花1先令,问男人、女人、小孩各有多少人?
必须使用递归
给个思路就行。。。。。
有30个人(包括男人、女人和小孩)在一家饭店吃饭共花50先令,其中每个男人花3先令,每个女人花2先令, 每个小孩花1先令,问男人、女人、小孩各有多少人?
必须使用递归
给个思路就行。。。。。
递归? 我说的不知道是不是递归. 就是用3个FOR 循环 格式如下我就写个大概思路哈。
FOR (a=1;a<=30;a++){ for (b=1;b<=30;b++) {for(c=1;c<=30;c++){}}}
你在中间加条件判断:if((a+b+c)==30){ if ((a*3+b*2+c*1)==50) {}} 这里是判断循环到有解的时候a、b、c及(男人、女人、小孩)的个数。加个输出就算出来了。
这个应该不能用递归吧?递归使用的条件是用规律的表达式额,例如9!,而你这个题目事先不知道结果多少种,只好这样了
#include <stdio.h> void main() { int x,y,z; for(x=1;x<=16;x++) for(y=1;y<=25;y++) for(z=1;z<=50;z++) { if(3*x+2*y+z==50) { if(x+y+z==30) printf("男人%d 女人%d 小孩%d\n",x,y,z); } } }