For Loop找到两个int的GCF

时间:2016-11-24 05:57:52

标签: java

我正在尝试编写代码,找到两个数字的GCF而不使用递归(我的老师希望它使用for循环)。我的代码现在似乎没有工作,我想知道是否有人能发现逻辑错误。

public class Test
{
    public static void main(String[] args)
    {        
        System.out.print(findGCF(2, 12));
    }
    public static int findGCF(int a, int b)
    {
            int holderGCF = 0;
            int greatestItCanBe = 0;
            if(a > b)
            {
                greatestItCanBe = b;
            }
            else 
            {
                greatestItCanBe = a;
            }               
            for(int i = greatestItCanBe; i > 0; i--)
            {
                if((a % i == 0) && (b % i == 0))
                {
                    holderGCF = i;
                    if(i > holderGCF)
                    {
                        holderGCF = i;
                    }                    
                }
            }
            return holderGCF;
    }
}   

1 个答案:

答案 0 :(得分:0)

这是问题

holderGCF = i;
if (i > holderGCF) {
   holderGCF = i;
}

在上面,因为分配后的第一行holderGCFi具有相同的值,而您的条件i > holderGCF始终为false。

删除此作业。

holderGCF = i;