由分析中可知辗转相除法实际上就是用较大数除以较小数如果能除尽则商就是两数的最大公因数否则再用较小的数除以前一次的余数如果能除尽则商就是两数的最大公因数否则继续前一次的过程.因此设计成循环结构的程序框图只需将除数赋予被除数余数赋予除数即可.
故答案为:m=n,n=r
#include<stdioh>
int gcd(int n,int m)
{
/Program/
int t;
if ( m>n )
{
t=m;m=n;n=t;
}
t=n%m;
while (t)
{
n=m;
m=t;
t=n%m ;
}
return m;
/ End /
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdioh>
#include <stdlibh>
int main()
{
int a, b,r;
scanf("%d %d", &a, &b);
while (b != 0)//当其中一个数为0,另一个数就是两数的最大公约数
{
r = a%b;
a = b;
b = r;
}
printf("最大公约数%d\n", a);
system("pause");
}
例子:
105252
252%105=42;
105%42=21;
42%21=0;
即21为105与252的最大公约数
扩展资料:
while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:
一、在while语句中设定条件语句,条件不满足,则循环自动停止。
如:只输出3的倍数的循环;可以设置范围为:0到20。
二、在循环结构中加入流程控制语句,可以使用户退出循环。
1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。
2、continue流程控制:也是中断循环内的运行 *** 作,并且从头开始运行。
由分析中可知辗转相除法实际上就是用较大数除以较小数如果能除尽则商就是两数的最大公因数否则再用较小的数除以前一次的余数如果能除尽则商就是两数的最大公因数否则继续前一次的过程.因此设计成循环结构的程序框图只需将除数赋予被除数余数赋予除数即可. 故答案为:m=n,n=r |
function gcd($m,$n){
//限制为整数类型
$m = intval($m);$n = intval($n);
//指定$m为绝对值中的大数
if(abs($m) < abs($n)){
$tmp = $n;
$n = $m;
$m = $tmp;
}
//被除数不能为0
if($n==0)return false;
//求余数
$r = $m % $n;
if($r==0){
//若为0,被除数就是最大公约数
return $n;
}else{
//若不为0,用被除数和余数重复算法
return gcd($n,$r);
}
}
以上就是关于辗转相除法m+=n全部的内容,包括:辗转相除法m+=n、C语言程序设计:用辗转相除法求两个整数的最大公约数。、C语言程序:用“辗转相除法”求两个正整数的最大公约数(程序填空)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)