五家共井java_算法练习02:五家共井
1.[代碼][Java]代碼
package com.kay.day02;
import org.junit.Test;
/**
*
*
Title: Run
*
Description: 古代數學巨著《九章算數》中有這么一道題叫“五家共井,甲二綆(汲水用的井繩)不足,如(接上)乙一綆;乙三綆不足,如丙一綆;
*丙四綆不足,如丁一綆;丁五綆不足,如戊一綆;戊六綆不足,如甲一綆,皆及。
*意思就是說五家人共用一口井,甲家的繩子用兩條不夠,還要再用乙家的繩子一條才能打到井水;乙家的繩子用三條不夠,還要再用丙家的繩子
*一條才能打到井水;丙家的繩子用四條不夠,還要再用丁家的繩子一條才能打到井水;丁家的繩子用五條不夠,還要再用戊家的繩子一條才能打
*到井水;戊家的繩子用六條不夠,還要再用甲家的繩子一條才能打到井水。
*最后問:井有多深?每家的繩子各有多長?
* @author kay
*/
public class Run {
/**
* 如果甲為a,乙為b,丙為c,丁為d,戊為e。可得到方程組
* a=b+c/2
* b=c+d/3
* c=d+e/4
* d=e+a/5
*/
public void Test(){
int a = 0, b = 0, c = 0, d = 0, e = 0, h = 0;
boolean flag = true;
while(flag){
e += 4;
a = 0;
while(flag){
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;
System.out.println("a = " + a + ";b = " + b + ";c = " + c + ";d = " + d + ";e = " + e + ";h = " + h);
}
/**
* 如果用數學方法進行推算,就可以得到
* a=265k
* b=191k
* c=148k
* d=129k
* e=76k
* x=721k
* 因為k>0,可以有無數個解,這里只取1..5
*/
@Test
public void Test1(){
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);
}
}
}
2.[圖片] 捕獲.GIF
3.[圖片] 2.GIF
總結
以上是生活随笔為你收集整理的五家共井java_算法练习02:五家共井的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java负数转换二进制表示_Java中的
- 下一篇: struts2学习(3)struts2核