下面的程序是求最大公约数,{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/12/26 10:40: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的最大公约数