作业帮 > 综合 > 作业

设有整型变量x和y的值分别为5和110.do{x=y/x; y=y-x;}while(y>=1); 结果是x=18; y

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 08:03:51
设有整型变量x和y的值分别为5和110.do{x=y/x; y=y-x;}while(y>=1); 结果是x=18; y=0;怎么的出这个结果?
do{x=y/x; y=y-x;}在y大于等于1前的是怎么进行计算的?
public class Test
{
    public static void main(String args[])
    {
        int x = 5;
        int y = 110;
        
        int i = 1;
        do
        {
            x=y/x;
            y=y-x;
            System.out.println("第" + i + "步:");
            System.out.println("x=y/x => " + x + "\t" + "y=y-x => " +y);
            i++;
        }
        while(y >= 1);
    }

}
根据输出的结果可以查看数据的变化:
第1步:
x=y/x => 22\x05y=y-x => 88
第2步:
x=y/x => 4\x05y=y-x => 84
第3步:
x=y/x => 21\x05y=y-x => 63
第4步:
x=y/x => 3\x05y=y-x => 60
第5步:
x=y/x => 20\x05y=y-x => 40
第6步:
x=y/x => 2\x05y=y-x => 38
第7步:
x=y/x => 19\x05y=y-x => 19
第8步:
x=y/x => 1\x05y=y-x => 18
第9步:
x=y/x => 18\x05y=y-x => 0
再问: 能解释下为啥第八步 x=y/x => 1 y=y-x => 18 y值变成18了么?
再答: 第7步后,x=19 y=19; 第8步: x=y/x = 19/19 =1; //这一步执行完后,x不再是19,已经变为1了 y=y-x =19 - 1 = 18;