经典算法题02-五家共井

问题描述

古代数学巨著《九章算数》中有这么一道题叫

 “五家共井,甲二绠(汲水用的井绳)不足,如(接上)乙一绠;乙三绠不足,如丙一绠;

丙四绠不足,如丁一绠;丁五绠不足,如戊一绠;戊六绠不足,如甲一绠,皆及。

意思就是说:

五家人共用一口井,甲家的绳子用两条不够,还要再用乙家的绳子一条才能打到井水;乙家的绳子用三条不够,还要再用丙家的绳子

一条才能打到井水;丙家的绳子用四条不够,还要再用丁家的绳子一条才能打到井水;丁家的绳子用五条不够,还要再用戊家的绳子一条才能打

到井水;戊家的绳子用六条不够,还要再用甲家的绳子一条才能打到井水。

最后问:井有多深?每家的绳子各有多长?
分析:

同样这套题也是属于不定方程,拿这个题目的目地就是让大家能够在不定方程组这种范畴问题上做到“举一反三”,根据题意我们再来看看文艺青年的想法,
草稿是:
这里写图片描述

想法是找a,b,c,d,e中的某个数与h的对应关系。

比如我就找c与h的对应关系,上面的①②③④⑤可写成如下方程组:

 b=h-2a   ⑥

 c=h-3b   ⑦

 d=h-4c   ⑧

 e=h-5d   ⑨

 a=h-6e   ⑩

将⑥,⑧,⑨,⑩分别代入⑦,一阵痉挛后可知:

 c=(148/721)h

上面的公式也就表明了c和h的比例关系,我们令 h=721k,则 c=148k,将其代入⑥,⑦,⑧,⑨,⑩可得如下方程: a=265k

 b=191k

 c=148k

 d=129k

 e=76k

 x=721;k为k>0,所以题目有无数个解。这里我就取  0<k<5,否则绳子已经到达极限了。
编码:
public class myFileDemo2 {
    public static void main(String[] args) {
        for (int k = 1; k < 5; k++) {
            int h = 721 * k;

            int a = 265 * k;

            int b = 191 * k;

            int c = 148 * k;

            int d = 129 * k;

            int e = 76 * k;

            System.out.println("a=" + a + ";b=" + b + ";c=" + c + ";d=" + d + ";e=" + e+";井深h="+h);
        }

    }
}

结果如下:
这里写图片描述

ok。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值