鱼C论坛

 找回密码
 立即注册
查看: 1154|回复: 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个数组成,顺序为 公鸡数 母鸡数 小鸡数。每个数字空格隔开。

代码如下

  1. #include <stdio.h>

  2. int main(){
  3.     int a1=100/5;//公鸡的最大数量
  4.     int b1=100/3;//母鸡的最大数量
  5.     int c1=100*3;//小鸡的最大数量
  6.     for(int a2=a1;a2>0;a2--){
  7.         for(int b2=b1;b2>0;b2--){
  8.             for(int c2=c1;c2>0;c2--){
  9.                 if((a2+b2+c2==100)&&(a2*5+b2*3+c2/3==100)&&(c2%3==0))printf("%d %d %d\n",a2,b2,c2);
  10.             }
  11.         }
  12.     }
  13.     return 0;
  14. }
复制代码
最佳答案
2020-12-10 21:39:03
  1. #include <stdio.h>

  2. main(void)
  3. {
  4.         int n , x , y , z                                                                         ;
  5.         for(n = 0 , x = 0 ; x * 5 <= 100 ; x ++) {
  6.                 for(y = 0 ; y * 3 + x <= 100 ; y ++) {
  7.                         z = 100 - x * 5 - y * 3                                                   ;
  8.                         if(x + y + z * 3 == 100) {
  9.                                 n ++                                                              ;
  10.                                 printf("%3d : x = %2d , y = %2d , z = %2d\n" , n , x , y , z * 3) ;
  11.                         }
  12.                 }
  13.         }
  14. }
复制代码

       编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

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

  7. D:\00.Excise\C>
复制代码

        说明:x、y、z 分别代表公鸡、母鸡、小鸡的只数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-10 21:39:03 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>

  2. main(void)
  3. {
  4.         int n , x , y , z                                                                         ;
  5.         for(n = 0 , x = 0 ; x * 5 <= 100 ; x ++) {
  6.                 for(y = 0 ; y * 3 + x <= 100 ; y ++) {
  7.                         z = 100 - x * 5 - y * 3                                                   ;
  8.                         if(x + y + z * 3 == 100) {
  9.                                 n ++                                                              ;
  10.                                 printf("%3d : x = %2d , y = %2d , z = %2d\n" , n , x , y , z * 3) ;
  11.                         }
  12.                 }
  13.         }
  14. }
复制代码

       编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

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

  7. D:\00.Excise\C>
复制代码

        说明:x、y、z 分别代表公鸡、母鸡、小鸡的只数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 18:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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