更相减损术

来源:互联网 发布:男士单肩包推荐 知乎 编辑:程序博客网 时间:2024/05/22 04:34
//编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。#include<stdio.h>void swap(int *p,int *q){  int m=*p;   *p=*q;   *q=m;}int max_divisor(int a,int b){    int s=a-b;   //10 9  s=1    if(a < b)  { swap(&a,&b);  //此时 a >= b,更相减损术求最大公约数  }    while(s != b && s != a)   // s=1 b=9  { if(s > b) {swap(&s,&b); }  s = b-s; b = b-s;  }    return s;}int main(){int ret = max_divisor(12,4);    printf("%d\n",ret);    return 0;}

0 0
原创粉丝点击