双重循环_百钱买鸡问题(注意变量类型的转换)

import java.util.Scanner;
public class Ceshi{
public static void main(String[] args){
int chuji;
for(int gongji=0; gongji<=20; gongji++){
for(int muji=0; muji<=33; muji++){
chuji = 100-gongji-muji;
if(gongji*5+muji*3+chuji/3.0== 100){ //如果不用3.0会产生近似值结果

/* 如int 77 / int 3 == 原本应该等于25.666666 但实际结果会转换成int 25,这就恰好满足要求

但int 77 / double 3.0 结果就为double 具体请参考“不同数据类型运算自动转换遵循的规则”*/

System.out.printf("公鸡%d只,母鸡%d只,雏鸡%d只\n", gongji, muji, chuji);
}
}
}
}
}
/*(gongji*5+muji*3+chuji/3== 100)产生的结果(明显不对)
----------------------------------------------------------
公鸡0只,母鸡25只,雏鸡75只
公鸡3只,母鸡20只,雏鸡77只
公鸡4只,母鸡18只,雏鸡78只
公鸡7只,母鸡13只,雏鸡80只
公鸡8只,母鸡11只,雏鸡81只
公鸡11只,母鸡6只,雏鸡83只
公鸡12只,母鸡4只,雏鸡84只
--------------------------------------------------------*/

/*(gongji*5+muji*3+chuji/3.0== 100)产生的结果(正确)
----------------------------------------------------------
公鸡0只,母鸡25只,雏鸡75只
公鸡4只,母鸡18只,雏鸡78只
公鸡8只,母鸡11只,雏鸡81只
公鸡12只,母鸡4只,雏鸡84只
--------------------------------------------------------*/

98百钱买百鸡

  (依据:《张丘建算经》;编诗:陈钢)

  百钱买来百只鸡,公母小鸡数不齐;

  母一钱三公钱五,三雏钱一价格低。

  公鸡母鸡各多少?还有几只是小鸡?

  【解说】这是依据我国古代《张丘建算经》上的“百鸡问题”编写而成的。

  “百鸡问题”是一道闻名于世界的题目,很有价值,也很有趣味。题目的原文是:

  “今鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。凡百钱买鸡百只,问:鸡翁、母、雏各几何?”

  题目中的“鸡翁”、“鸡母”、“鸡雏”分别指“公鸡”、“母鸡”和“小鸡”。“雏”的读音与“除”音相同,“雏”即幼禽,这里指小鸡。若用通俗的话来说,题目的意思可以是:

  用100文钱买来100只鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱3只。问:在这100只鸡中,公鸡、母鸡、小鸡各是多少只?

  对于这道题目的解答,《算经》上给出了如下的解法“术文”与答案:

  “术曰:鸡翁每增四,鸡母每减七,鸡雏每益三,即得。”“答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡雏七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡母十一,值钱三十三;鸡雏八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四,值钱十二;鸡雏八十四,值钱二十八。”

  这一简要术文,意思可作如下表示:

  公鸡每增加4只:4812→……

  则 母鸡应每减7只:18114→……

  小鸡应每增3只:788184→……

 

  看得出来,《算经》的解法是先求得第一组(竖的第一列)答案:

  公鸡4只,母鸡18只,小鸡78只。

  然后采用“四、七、三增减法”,去求其他两组答案。但是,第一组答案是怎样求得的呢?这种“增减方法”又是怎样找到的呢?书上没作任何交代。据后人推测,这可能都是由实验得到的。因为

  (增加数) (减少数)

  43 =7(只)——增减后,鸡的数目相等;

  所以,只有这样,得数才比较容易搭配出来。

  在《张丘建算经》以前的古算书上,从来没有出现过这种“一题三答”的题目。这一点,是张丘建在数学上的伟大贡献。

  现在解这种题目,一般都是运用“不定方程”的知识来解答的。那么没有学过代数知识的读者,能否将它解答出来呢?

  回答是肯定的。我们完全可以用一种比较简单的方法,来推算出题目的答案。

公鸡0只,母鸡25只,雏鸡75只

  这样一来,我们就得到了一组与原来题意不相符合的答案:

  为使答案符合题意,最好使公鸡数增加,不使其为0。办法是:在这一组答案的基础上,找出一种推算办法——“每次当公鸡增加4只,母鸡减少7只,小鸡增加3只”的时候,三种鸡的总数100只和它们需要的总钱数100文,都不会发生变化。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值