下面的程序是求最大公约数,{int r;do{r=a%b;a=b;b=r;} while(r!=0);ruturn a;如果a=21,b=15时,a%b不是为9吗?a=b,b=15,最后输出的a不是为15吗?还是3?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 17:47:46

下面的程序是求最大公约数,{int r;do{r=a%b;a=b;b=r;} while(r!=0);ruturn a;如果a=21,b=15时,a%b不是为9吗?a=b,b=15,最后输出的a不是为15吗?还是3?
下面的程序是求最大公约数,
{int r;
do
{r=a%b;
a=b;
b=r;
} while(r!=0);
ruturn a;
如果a=21,b=15时,a%b不是为9吗?
a=b,b=15,最后输出的a不是为15吗?还是3?

下面的程序是求最大公约数,{int r;do{r=a%b;a=b;b=r;} while(r!=0);ruturn a;如果a=21,b=15时,a%b不是为9吗?a=b,b=15,最后输出的a不是为15吗?还是3?
你要注意整个do while循环的条件是 r != 0,也就是说,当r不等于0的时候,就一直执行循环.那么我们来看看执行过程.
第一次
a = 21,b = 15
r = a % b; // r = 9;
a = b; // a = 15;
b = r; // b = 9;
r不等于0,所以继续
第二次
a = 15,b = 9
r = a % b; // r = 6;
a = b; // a = 9;
b = r; // b = 6;
r不等于0,所以继续
第三次
a = 9,b = 6
r = a % b; // r = 3;
a = b; // a = 6;
b = r; // b = 3;
r不等于0,所以继续
第四次
a = 6,b = 3
r = a % b; // r = 0;
a = b; // a = 3;
b = r; // b = 0;
r等于0了,所以跳出循环
现在a是3,恰好是21和15的最大公约数

关于求最大公约数,下面这段程序是怎么求得到的……intgys(inta,intb){ int r;if(a C语言:关于用辗转相除法递归求最大公约数,下面的程序有错误,请帮我改一下,int gcd(int m,int n){int r,t;if(m 下面的程序是用辗转相除法求两个正整数的最大公约数,请填空.#include stdio.hmain(){int r,m,n;scanf(%d,%d,&m,&n);if(m 下面的程序是求最大公约数,{int r;do{r=a%b;a=b;b=r;} while(r!=0);ruturn a;如果a=21,b=15时,a%b不是为9吗?a=b,b=15,最后输出的a不是为15吗?还是3? 输入两个正整数m和n 求其最大公约数和最小公倍数下面是我写的程序最大公约数部分没有问题 最小公倍那里有问题#includemain(){int m,n,r=0,s,w=0;scanf(%d,%d,&m,&n);r=m%n;w=m*n;{while(r){m=n;n=r;r=m%n;}printf( C++ 关于求两个数的最大公约数和最小公倍数我设计的程序是#includeusing namespace std;void main(){int a=0;int b=0;int r,p;coutb;if (a>b){ t=a;b=a;b=t;}else{ a=a;b=b;}for(int r=1,int p=1;i 辗转相除法求最大公约数以下是我的写的程序,但是不知道为什么运算结果不正确#include main(){ int a,b,r=a%b; scanf(%d,%d,&a,&b); while(r) { a=b; b=r; r=a%b; } printf(最大公约数为:%d,b);}//无论我输入什 C语言程序填空:用辗转相除法求两个整数的最大公约数、最小公倍数.#include void main(){ int n,m,nm,r,t;printf(Enter m,n=?);scanf(%d%d,&m,&n);nm=n*m;if(m 菜鸟c语言程序题求说明我想问问大家下面的程序里面y一开始并没有被赋予初值,程序是怎么通过函数fnc(y,x[i])比较出最大值的#include stdio.hint fnc(int a,int b);int main(int argc,char const *argv[]){int i C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,//辗转相减法int main(){int m,n;int gcd(int m,int n);int min(int m,int n);scanf(%d %d,&m,&n);printf(最大公约 c++ 定义函数 求两个数的最大公约数int gcd(int v1,int v2){while (v2){int temp=v2;v2=v1%v2;v1=temp;}return v1;}这个程序我看不明白,调用函数的时候,temp是v2的值,最后temp又赋值给v1,那v1不就是v2的值了嘛. 以下程序的功能:输入两个正整数,求他们的最大公约数.程序如下:main(){int m,n,r,t;printf(Input two number,please! );scanf(%d,%d,&m,&n);if(m0){r=m%n;m=n;___; /*$BLANK2$*/}printf(gcd=%d ,___); /*$BLANK3$*/} C语言程序填空:用辗转相除法求两个整数的最大公约数 帮帮 #includevoid main(){int a,b,r;int *p1,*p2;p1=&a;p2=&b;printf(input a,b:);scanf(%d,%d,p1,p2);if(*p1>*p2) ________________;while(____________){*p1=__________;*p2=_____ #include int ZDGYS(int m,int n) { int r; scanf(%d%d,&m,&n); r=m%n; while(r!=0) { m=n; n=#includeint ZDGYS(int m,int n){int r;scanf(%d%d,&m,&n);r=m%n;while(r!=0){m=n;n=r;r=m%n;}return n;}main(){printf(%d,r);}求m,n的最大公约数 看看哪有 改错题7,87./* 输入2个正整数,求他们的最大公约数输出,其中有3个错误 */ #include int fun(int a,int b) { int r,t; if(a 下面的这个是参考答案上的程序# include void fun(int (*str)[10],int *a,int *n,int mm,int nn){int i,j;for(j=0;j 用辗转相除法求多个数的最大公约数我的程序如下,这个函数是要求出多个数的最大公约数,运用的原理是辗转相除法,期中weight[]是一个含有多个(ex:10)数的一维数组,请指教哪里出问题了.int 关于while循环while(z=r%h)它的循环体结束条件是什么?intgys(inta, intb) //求最大公约数{ int r; if(a