关于while()的问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:16:39
int gub(int x,int y)
{

int z;
z=x%y;
while(z)
{x=y;y=z;z=x%y;}
return y;
}这是求最大公约数的一个计算程序。这里的WHILE(Z)是什么意思· ··;
是哪时候终止循环,可不可以换成int gub(int x,int y)
{

int z;
z=x%y;
for(int i=0;i<1;i++)
{x=y;y=z;z=x%y;}
return y;
}···谢谢

z是x与y求余所得的数,那么while(Z)表示当Z不等于0时就不执行循环体,当z=0时结束循环。
可以改为下面的
int gub(int x,int y)
{

int z;
z=x%y;
for(int i=0;z!=0;i++)
{x=y;y=z;z=x%y;}
return y;
}