rt3 发表于 2020-12-10 21:06:34

百钱买百鸡问题,谢谢


在http://oj.czos.cn/problem.php?id=1022提交后报 答案错误
原题

用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应该买多少只?
输入


输出

每种买法占一行,由3个数组成,顺序为 公鸡数 母鸡数 小鸡数。每个数字空格隔开。

代码如下

#include <stdio.h>

int main(){
    int a1=100/5;//公鸡的最大数量
    int b1=100/3;//母鸡的最大数量
    int c1=100*3;//小鸡的最大数量
    for(int a2=a1;a2>0;a2--){
      for(int b2=b1;b2>0;b2--){
            for(int c2=c1;c2>0;c2--){
                if((a2+b2+c2==100)&&(a2*5+b2*3+c2/3==100)&&(c2%3==0))printf("%d %d %d\n",a2,b2,c2);
            }
      }
    }
    return 0;
}

jackz007 发表于 2020-12-10 21:39:03

#include <stdio.h>

main(void)
{
      int n , x , y , z                                                                         ;
      for(n = 0 , x = 0 ; x * 5 <= 100 ; x ++) {
                for(y = 0 ; y * 3 + x <= 100 ; y ++) {
                        z = 100 - x * 5 - y * 3                                                   ;
                        if(x + y + z * 3 == 100) {
                              n ++                                                            ;
                              printf("%3d : x = %2d , y = %2d , z = %2d\n" , n , x , y , z * 3) ;
                        }
                }
      }
}
       编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
1 : x =0 , y = 25 , z = 75
2 : x =4 , y = 18 , z = 78
3 : x =8 , y = 11 , z = 81
4 : x = 12 , y =4 , z = 84

D:\00.Excise\C>
      说明:x、y、z 分别代表公鸡、母鸡、小鸡的只数。
页: [1]
查看完整版本: 百钱买百鸡问题,谢谢