最大公約數(shù)、最小公倍數(shù)的N種實(shí)現(xiàn)方式蝗岖、最小公倍數(shù)

一侥猩、最大公約數(shù)

1.輾轉(zhuǎn)相除法


  /**
   * 求最大公約數(shù)
   * 輾轉(zhuǎn)相除除法
   *
   * @param a
   * @param b
   * @return
   */
  public static long maxCommonDivisor(long a, long b) {
    long r;
    while ((r = a % b) != 0) {
      a = b;
      b = r;
    }
    return b;
  }

2.相減法

 /**
   * 求最大公約數(shù)
   * 相減法
   *
   * @param a
   * @param b
   * @return
   */
  public static long maxCommonDivisorByDecrease(long a, long b) {

    while (a != b) {
      if (a > b) {
        a = a - b;
      } else {
        b = b - a;
      }
    }
    return a;
  }

3.窮舉法

  /**
   * 窮舉法 同樣適用于多個(gè)數(shù)字
   *
   * @param a
   * @param b
   * @return
   */
  public static long maxCommonDivisorByPoll(long a, long b) {
    for (long i = a; i > 0; i--) {
      if (a % i == 0 && b % i == 0) return i;
    }
    return 0;
  }

二、最小公倍數(shù)

1.利用最大公約數(shù)去求公式是 a*b/最大公約數(shù)抵赢,公約數(shù)怎么求欺劳?看??邊把。

/**
   * 求最小公倍數(shù)
   */

  public static long minCommonMultiple(long a, long b) {
    long divisor = maxCommonDivisor(a, b);

    long l = a * b / divisor;
    return l;
  }

2.窮舉法

/**
   * 求最小公倍數(shù)
   * 窮舉法
   */

  public static long minCommonMultipleByPoll(long a, long b) {
    long t;
    for (t = 1;; t++) {
      if (t % a == 0 && t % b == 0) {
        return t;
      }
    }
  }

三铅鲤、小數(shù)轉(zhuǎn)化成分?jǐn)?shù)划提。
我這寫(xiě)有點(diǎn)復(fù)雜 ,但是利用最簡(jiǎn)單的思路是做的邢享,就是把小數(shù)轉(zhuǎn)化成一個(gè)數(shù)除以10的n次方冪鹏往,然后求這兩個(gè)數(shù)的最大公約數(shù),每個(gè)數(shù)再分別除以最大公約數(shù)驼仪,得到的數(shù)拼接字符串 輸出。


  /**
   * 小數(shù)轉(zhuǎn)分?jǐn)?shù)
   * 主要思想就是利用最大公約數(shù)簡(jiǎn)化分子分母
   *
   * @param decimal
   * @return
   */
  public static String decimalToFraction(double decimal) {
    String s = String.valueOf(decimal);
    String[] split = s.split("\\.");// 正則分割袜漩,點(diǎn)因?yàn)槭窃址靼郑砸D(zhuǎn)義
    if (split.length == 0 || split.length > 2) return String.valueOf(decimal);
    int lastLength = split[1].length();
    // 根據(jù)小數(shù)的位數(shù)去把小數(shù)轉(zhuǎn)化成整數(shù) 比如兩位小數(shù) 就是要10的2次冪
    double pow = Math.pow(10, Double.parseDouble(String.valueOf(lastLength)));
    long numerator = (long) (decimal * pow);// 分子
    long denominator = (long) pow;// 分母

    long maxDivisor = maxCommonDivisor(numerator, denominator);
    long simpleNumerator = numerator / maxDivisor;// 除以最大公約數(shù),求最簡(jiǎn)分子
    long simpleDenominator = denominator / maxDivisor;// 同上

    return simpleNumerator + "/" + simpleDenominator;

  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宙攻,一起剝皮案震驚了整個(gè)濱河市奠货,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌座掘,老刑警劉巖递惋,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異溢陪,居然都是意外死亡萍虽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)形真,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)杉编,“玉大人,你說(shuō)我怎么就攤上這事〉寺” “怎么了嘶朱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)光酣。 經(jīng)常有香客問(wèn)我疏遏,道長(zhǎng),這世上最難降的妖魔是什么救军? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任财异,我火速辦了婚禮,結(jié)果婚禮上缤言,老公的妹妹穿的比我還像新娘宝当。我一直安慰自己,他們只是感情好胆萧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布庆揩。 她就那樣靜靜地躺著,像睡著了一般跌穗。 火紅的嫁衣襯著肌膚如雪订晌。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天蚌吸,我揣著相機(jī)與錄音锈拨,去河邊找鬼。 笑死羹唠,一個(gè)胖子當(dāng)著我的面吹牛奕枢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播佩微,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缝彬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了哺眯?” 一聲冷哼從身側(cè)響起谷浅,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奶卓,沒(méi)想到半個(gè)月后一疯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夺姑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年墩邀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盏浙。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡磕蒲,死狀恐怖留潦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辣往,我是刑警寧澤兔院,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站站削,受9級(jí)特大地震影響坊萝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜许起,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一十偶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧园细,春花似錦惦积、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鹿寻,卻和暖如春睦柴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毡熏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工坦敌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人痢法。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓狱窘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親财搁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蘸炸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一章數(shù)和數(shù)的運(yùn)算 一概念 (一)整數(shù) 1整數(shù)的意義 自然數(shù)和0都是整數(shù)。 2自然數(shù) 我們?cè)跀?shù)物體的時(shí)候妇拯,用來(lái)表示...
    meychang閱讀 2,606評(píng)論 0 5
  • 小學(xué)奧數(shù)其實(shí)很簡(jiǎn)單膘滨,以下是這六個(gè)部分的知識(shí)點(diǎn)甘凭! 1 第一部分(知識(shí)點(diǎn)1-6) 2、年齡問(wèn)題的三個(gè)基本特征: ①兩個(gè)...
    小一哥閱讀 1,323評(píng)論 0 3
  • 小升初的過(guò)程中火邓,競(jìng)賽成績(jī)能起到相當(dāng)大的作用丹弱,談到競(jìng)賽就離不開(kāi)奧數(shù)德撬。以下是小學(xué)奧數(shù)題知識(shí)點(diǎn)大匯總: 1.和差倍問(wèn)題 ...
    滬江中小幼閱讀 1,135評(píng)論 0 7
  • 各位資深潛友蜓洪,初級(jí)潛友以及未來(lái)潛友: 自從我愛(ài)上旅行,便想去看遍這世間的風(fēng)華萬(wàn)千坯苹,見(jiàn)過(guò)大山的巍峨沒(méi)見(jiàn)過(guò)大海的浩瀚隆檀,...
    小趣來(lái)趣途閱讀 497評(píng)論 6 4
  • 扒扒父母的愛(ài)情,應(yīng)該是每個(gè)孩子都熱衷的事情粹湃。我也一樣恐仑,對(duì)于父母的“愛(ài)情”抱有極大的好奇心。初時(shí)为鳄,年幼裳仆,父母并不愿對(duì)...
    An_xin閱讀 309評(píng)論 0 0