利用递归求两个数字的最大公约数。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//利用递归求两个数字的最大公约数。
//公因数,如果一个整数同时是几个整数的约数,则这个整数为它们的“公约数”
function getNum(a, b)
{
var r = a % b;
a = b;
b = r;
return r === 0 ? a : getNum(a, b);
//这是三目预算 与下面的if语句起的作用相同
// if( r == 0)
// {
// return a;
// }else{
// getNum(a, b)
// }
}
document.write(getNum(60,30));
</script>
</head>
<body>
</body>
</html>

//输出的结果30,传入的数分别为60和30;

时间: 2024-10-25 11:34:41

利用递归求两个数字的最大公约数。的相关文章

249 递归:概念,利用递归求1~n的阶乘,利用递归求斐波那契数列,利用递归遍历数据

6.1什么是递归 递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数. 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意:递归函数的作用和循环效果一样,由于递归很容易发生"栈溢出"错误(stack overflow),所以必须要加退出条件return. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g

算法 - 求两个自然数的最大公约数(C++)

placeholder算法 - 求两个自然数的最大公约数(C++),布布扣,bubuko.com

求两个整数的最大公约数

<C和指针>第7章第2道编程题: 两个整型值M和N(M.N均大于0)的最大公约数可以按照下面的方法计算: 请编写一个名叫gcd的函数,它接受两个整型参数,并返回这两个数的最大公约数.如果这两个参数中的任何一个不大于零,函数返回零. 1 /* 2 ** 求两个整数的最大公约数 3 */ 4 5 #include <stdio.h> 6 7 int gcd( int M, int N ); 8 9 int 10 main() 11 { 12 int m, n; 13 scanf( &q

求两个正整数的最大公约数和最小公倍数(java)

1 package com.hpu.bai; 2 3 import java.util.Scanner; 4 5 public class Common { 6 public int mincom(int m,int n){ 7 int temp;int t = 0; 8 if(m<n){ 9 temp = n; 10 n =m; 11 m =temp; 12 } 13 if(m%n ==0) return n; 14 else 15 return mincom(m-n,n); 16 } 17

求两个整数的最大公约数和最小公倍数

//求最大公约数是用辗转相除法,最小公倍数是根据公式 m,n 的 最大公约数* m,n最小公倍数 = m*n 来计算 #include<stdio.h> //将两个整数升序排列 void ascNum(int *p1,int *p2) { int temp; if(*p1 > *p2) { temp = *p2; *p2 = *p1; *p1 = temp; } } //求两个整数的最大公约数 辗转相除法 int getAppr(int a, int b) { int c; ascNum

002:求两个整数的最大公约数和最小公倍数

求最大公约数可采用辗转相除法,其流程如图所示. 最小公倍数就是两个整数的乘积除以其最大公约数. 1 #include <stdio.h> 2 3 int main() 4 { 5 unsigned long a, b, c=0; //两个整数和临时变量 6 unsigned long lcm=0, gcd=0; //最小公倍数和最大公约数 7 8 while( 1 ) 9 { 10 printf("Please input two positive integers(spacebar

利用递归求阶乘

1 package com.d; 2 3 import java.util.Scanner; 4 5 public class Digui { 6 7 public static void main(String[] args) { 8 Digui d = new Digui(); 9 10 System.out.println("请输入一个整数"); 11 Scanner scan = new Scanner(System.in); 12 int a = scan.nextInt()

利用快速排序求两集合交集

1.主程序 %% 求两个集合快速排序 tic arrayList1 = [49,38,65,97,76,13,27,49,100,67]; arrayList1 = quickSort(arrayList1,1,length(arrayList1)); arrayList2 = [49,34,76,27,23,566,67]; arrayList2 = quickSort(arrayList2,1,length(arrayList2)); %% 求两个集合交集: length_arrayList

求两个正整数的最大公约数——辗转相减法

问题:求解两个正整数的最大公约数 今天第一节形式化方法课,举了一个简单的例子——辗转相减法求解两个正整数的最大公约数,来讲解形式化方法的基本内容,让我们有感性的认识.其基本思路如下: 1.任意给定两个正整数a和b: 2.若a和b不相等,则执行第3步: 3.选择a.b中较大者,将较大者与较小者的差赋值给较大者: 4.判断重新赋值后的a和b是否相等,若不相等则继续执行第3步,否则执行第5步: 5.返回a或b. 程序如下(Java编写). 程序中前断言和后断言是形式化方法中的内容,前断言判断用于计算的