Используемый цикл while ничего не делает, когда предполагается, что m равно HCF - PullRequest
0 голосов
/ 23 февраля 2019

Программа должна найти HCF для m и n, где m меньше n, используя рекурсивную функцию Hifact (int m, int n). Часть Hifact работает, но цикл while не работает, хотялогично.

public class test{
        public static void main(int m,int n)//m<n
        {
            while(m%Hifact(m,n)!=0)//reduces value of m till m%Hifact(m,n)==0
            {
                --m;
            }
            System.out.println(m);
        }
        public static int Hifact(int m,int n)//returns largest number <= m which completely divides n
        {
            if(n%m==0)
            {
                return m;
            }
            else
            {
                return Hifact(m-1,n);
            }
        }
    }

1 Ответ

0 голосов
/ 23 февраля 2019

Я полагаю, что ваш код сработает, если вместо этого вы напечатаете Hifact(m,n) в строке 8. Я проверил это, и код напечатал 5 по желанию.Я также проверил с некоторыми другими значениями, которые все еще дали правильный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...