For Loop不起作用

时间:2013-12-13 05:24:08

标签: java for-loop

我刚发布了一个关于我的LCM课程的问题,但我改变了我的代码,但它仍然无效。 我插入(10,4)所以程序应该打印20但它只打印0.也许在初始化时出现了问题?我将“int multiple”更改为几个不同的值,并且该方法打印出初始化为“multiple”的值。 这是我的固定代码。谢谢。

public class LCM {
public static int calcLCM(int num1, int num2){ //num1=10, num2=4; their LCM is 20
    //num1 has to be greator than num2
    int multiple=0;
    for(int i=1;i<=num1;i++)
    {
        if(num2==num1)
        {
            multiple=num2;
        }

        else if(num2*i>num1)
        {
            i++;
            num1=num1*i;
        }

        else if(num2*i<num1){
            i++;
            num2=num2*i;
        }
    }
    return multiple;
    }
}

2 个答案:

答案 0 :(得分:0)

在循环内部以及循环条件本身中递增i。你不需要它,它会导致你的循环跳过值。

此外,您将num1num2i相乘。我认为你真正想做的是你想用它们的原始值来增加它们。

答案 1 :(得分:0)

算法中的一点变化将给出正确答案 -

public class LCM   
{  
   public static int calcLCM(int num1, int num2)  
   {   
      //num1=10, num2=4; their LCM is 20  
      //num1 has to be greator than num2  
      int i=1;  
      while((num1*i)%num2!=0)  
      {  
        i++;  
      }  
      return num1*i;  
   }    

       public static void main(String[] args)   
   {  
    System.out.println(calcLCM(10,2));  
   }  
}