国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

java算法---五家共井

2019-11-14 23:05:02
字體:
供稿:網(wǎng)友
java算法---五家共井

古代數(shù)學(xué)巨著《九章算數(shù)》中有這么一道題叫“五家共井,甲二綆(汲水用的井繩)不足,如(接上)乙一綆;乙三綆不足,如丙一綆;

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

意思就是說五家人共用一口井,甲家的繩子用兩條不夠,還要再用乙家的繩子一條才能打到井水;乙家的繩子用三條不夠,還要再用丙家的繩子

一條才能打到井水;丙家的繩子用四條不夠,還要再用丁家的繩子一條才能打到井水;丁家的繩子用五條不夠,還要再用戊家的繩子一條才能打

到井水;戊家的繩子用六條不夠,還要再用甲家的繩子一條才能打到井水。

最后問:井有多深?每家的繩子各有多長?

算法分析:根據(jù)題目可以列的一下方程(len為井深)

len1*2+len2 = len

len2*3+len3 = len

len3*4+len4 = len

len4*5+len5 = len

len5*6+len1 = len

進(jìn)一步化簡

len1=len2+len3/2

len2=len3+len4/3

len3=len4+len5/4

len4=len5+len1/5

從上面算式可以得到len3是2的倍數(shù),len4是3的倍數(shù),len5是4的倍數(shù),len1是5的倍數(shù)。

代碼實(shí)現(xiàn):

package 練習(xí);public class WJGJ{    static void WJGJ(            int[] len1, int[] len2, int[] len3, int[] len4,            int[] len5, int[] len) // 五家共井算法    {        for (len5[0] = 4;; len5[0] += 4)            // len5為4的倍數(shù)            for (len1[0] = 5;; len1[0] += 5) // len1為5的倍數(shù)            {                len4[0] = len5[0] + len1[0] / 5;                len3[0] = len4[0] + len5[0] / 4;                if (len3[0] % 2 != 0 || len4[0] % 3 != 0)                    continue; // 如果不能被2整除或若不能被3整除,進(jìn)行下一次循環(huán)                len2[0] = len3[0] + len4[0] / 3;                if (len2[0] + len3[0] / 2 < len1[0])                    break; // 切回len5[0]循環(huán)(因?yàn)閤太大了)                if (len2[0] + len3[0] / 2 == len1[0])                {                    len[0] = 2 * (len1[0]) + (len2[0]); // 計(jì)算井深                    return;                }            }    }    public static void main(String[] args)    {        int[] len1 = { 0 };        int[] len2 = { 0 };        int[] len3 = { 0 };        int[] len4 = { 0 };        int[] len5 = { 0 };        int[] len = { 0 };        WJGJ(len1, len2, len3, len4, len5, len); // 求解算法        System.out.

用c也可以實(shí)現(xiàn)

代碼如下

namespace Test{    class Program    {        static void Main(string[] args)        {            int a, b, c, d, e, h;            a = b = c = d = e = h = 0;            bool flag = true;            while (flag)            {                //4的倍數(shù)                e += 4;                a = 0;                while (flag)                {                    //5的倍數(shù)                    a += 5;                    d = e + a / 5;                    c = d + e / 4;                    if (c % 2 != 0)                        continue;                    if (d % 3 != 0)                        continue;                    b = c + d / 3;                    if (b + c / 2 < a)                        break;                    if (b + c / 2 == a)                        flag = false;                }            }            h = 2 * a + b;            Console.WriteLine("a={0},b={1},c={2},d={3},e={4} ------h={5}/n", a, b, c, d, e, h);            Console.Read();        }    }}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 历史| 周口市| 甘南县| 陈巴尔虎旗| 青河县| 阿尔山市| 墨脱县| 汝南县| 长泰县| 永济市| 鄂伦春自治旗| 颍上县| 额济纳旗| 江永县| 临颍县| 阳西县| 荆门市| 阳山县| 武安市| 湛江市| 建平县| 太康县| 临武县| 偏关县| 凤城市| 宜丰县| 湘潭县| 河东区| 木里| 日喀则市| 扎囊县| 会理县| 德江县| 合江县| 桃园县| 新竹市| 西峡县| 海口市| 沾益县| 班玛县| 胶南市|