鱼C论坛

 找回密码
 立即注册
查看: 992|回复: 1

[已解决]百钱买百鸡问题,谢谢

[复制链接]
发表于 2020-12-10 21:06:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

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;
}
最佳答案
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 分别代表公鸡、母鸡、小鸡的只数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 分别代表公鸡、母鸡、小鸡的只数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 10:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表