辗转相除法的算法步骤C语言,c语言中的辗转相除法

  辗转相除法的算法步骤C语言,c语言中的辗转相除法

  如果需要两个正整数1997和615的最大公约数,则使用欧几里德算法,具体如下:

  1997/615=3(剩余152人)

  65/152=4(剩余7)

  12/7=21(剩余5)

  7/5=1(剩余2)

  5/2=2(剩余1)

  2/1=2(剩余0)

  到目前为止,最大公约数是1。

  用除数和余数重复除法运算。余数为0时,取当前公式的除数为最大公约数,则1997和615的最大公约数为1。

  程序实现:# includesdio.h

  //通过逐相除法求两个整数值x和y的最大公约数

  int gcd(无符号x,无符号y) {

  if (x % y==0) {

  Printf(%d/%d=%d(剩余%d)\n ,x,y,x/y,x % y);

  返回y;

  }

  else if (y % x==0) {

  Printf(%d/%d=%d(剩余%d)\n ,y,x,y/x,y % x);

  返回x;

  }

  else if (x y) {

  Printf(%d/%d=%d(剩余%d)\n ,x,y,x/y,x % y);

  返回gcd(y,(x % y));

  }

  else if (x y) {

  Printf(%d/%d=%d(剩余%d)\n ,y,x,y/x,y % x);

  返回gcd(x,(y % x));

  }

  }

  int main(void) {

  无符号x;

  无符号y;

  Puts(请输入x的值:);

  scanf(%d ,x);

  Puts(请输入y的值:);

  scanf(%d ,y);

  printf( %d 和% d的最大公约数是:% d ,x,y,gcd(x,y));

  返回0;

  }运行结果:

  减法:最大公约数是一个大数减少到两个数相等的时候。

  #包含stdio.h

  //用折腾减法求两个整数值X和Y的最大公约数

  int gcd(无符号x,无符号y) {

  if (x==y) {

  返回x;

  }

  else if (x y) {

  printf(%d - %d=%d \n ,x,y,x-y);

  返回gcd(y,x-y);

  }

  else if (x y) {

  printf(%d - %d=%d \n ,y,x,y-x);

  返回gcd(x,y-x);

  }

  }

  int main(void) {

  无符号x;

  无符号y;

  Puts(请输入x的值:);

  scanf(%d ,x);

  Puts(请输入y的值:);

  scanf(%d ,y);

  printf( %d 和% d的最大公约数是:% d ,x,y,gcd(x,y));

  返回0;

  }运行结果:

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: