下面的程序是求最大公约数,
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 17:04:47
下面的程序是求最大公约数,
{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的最大公约数
第一次
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程序语句