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

首頁 > 學院 > 開發設計 > 正文

【九度OJ】題目1056:最大公約數 解題報告

2019-11-06 06:26:42
字體:
來源:轉載
供稿:網友

【九度OJ】題目1056:最大公約數 解題報告

標簽(空格分隔): 九度OJ


原題地址:http://ac.jobdu.com/PRoblem.php?pid=1056

題目描述:

輸入兩個正整數,求其最大公約數。

輸入:

測試數據有多組,每組輸入兩個正整數。

輸出:

對于每組輸入,請輸出其最大公約數。

樣例輸入:

49 14

樣例輸出:

7

Ways

如果遍歷的話會很麻煩,這里參考了書上的歐幾里得算法。即:

如果求a,b的最大公約數,如果b為0,那么最大公約數為a;否則,則改為求``b``和``a % b``的最大公約數。

證明我也看不懂,就不講了。C++算法如下。

#include <stdio.h>int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b);}int main() { int a, b; while (scanf("%d%d", &a, &b) != EOF) { printf("%d/n", gcd(a, b)); } return 0;}

另外,是否想起了前面的java BigInteger類?沒錯!自帶求最大公約數方法!雖然用java效率很低,但是,核心算法不用我們寫,不容易錯啊! 方法如下。

import java.util.*;import java.math.*;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String line =scanner.nextLine(); String[] params = line.split(" "); BigInteger a = new BigInteger(params[0]); BigInteger b = new BigInteger(params[1]); System.out.println(a.gcd(b)); } }}

Date

2017 年 3 月 6 日


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 溧水县| 治多县| 全州县| 无锡市| 乌拉特前旗| 黎城县| 潮安县| 岚皋县| 太谷县| 曲阜市| 保山市| 库车县| 成都市| 安徽省| 南投市| 贡嘎县| 樟树市| 合阳县| 克什克腾旗| 沧源| 肇源县| 东阿县| 连平县| 安龙县| 乡城县| 蓝田县| 台中市| 夏河县| 洛扎县| 昌乐县| 平罗县| 上饶县| 靖宇县| 双江| 婺源县| 中江县| 唐河县| 仁化县| 永州市| 浏阳市| 莱西市|