下面的程序是求最大公约数,
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/16 04:21:02
下面的程序是求最大公约数,
{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?
![下面的程序是求最大公约数,](/uploads/image/z/19985931-27-1.jpg?t=%E4%B8%8B%E9%9D%A2%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%98%AF%E6%B1%82%E6%9C%80%E5%A4%A7%E5%85%AC%E7%BA%A6%E6%95%B0%2C)
你要注意整个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的最大公约数
第一次
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的最大公约数
下面的程序是用辗转相除法求两个正整数的最大公约数,请填空.
C语言:关于用辗转相除法递归求最大公约数,下面的程序有错误,请帮我改一下,
编写一个c语言程序 求两个整数的最大公约数
VB程序 求三个数的最大公约数与最小公倍数
用C编一个求最大公约数和最小公倍数的程序!
C语言程序:用“辗转相除法”求两个正整数的最大公约数(程序填空)
求下面每组数的最大公约数和最小公倍数.
求下面各组数的最大公约数和最小公倍数.
求下面每组数的最大公约数和最小公倍数.
求C语言程序:求两个整数的最大公约数和最小公倍数.
对于这个经典的求最大公约数,最小公倍数的C语言程序,我有疑问.
求四个整数的最大公约数和最小公倍数的VB程序语句