Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Расчеты с Rational / 5 сообщений из 5, страница 1 из 1
25.01.2013, 19:53:25
    #38125298
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчеты с Rational
Добрый вечер всем.

Вот такой вот кейсик заимплементить надо. Вроде как пятничный.

Код: java
1.
2.
3.
4.
5.
6.
 @Test
    public void testAdd(){
        Rational arg1=new Rational("2/3");
        Rational arg2=new Rational("3/5");
        assertEquals("19/15",Rational.add(arg1,arg2));
    }
...
Рейтинг: 0 / 0
25.01.2013, 19:59:43
    #38125305
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчеты с Rational
...
Рейтинг: 0 / 0
25.01.2013, 20:07:56
    #38125313
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчеты с Rational
Я видел этот пример. Но я не вижу по коду чтобы он упрощал
числитель и знаменатель. Например

Код: java
1.
"20/15" == "4/3"



А такой эффект лавинообразного роста числителя и знаменателя
есть когда идёт циклически метод .plus() или .minus()
...
Рейтинг: 0 / 0
25.01.2013, 20:16:27
    #38125322
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчеты с Rational
Странно. Это разве не оно?

Код: java
1.
2.
3.
4.
5.
6.
7.
    // Find gcd of numerators and denominators
        int f = gcd(a.num, b.num);
        int g = gcd(a.den, b.den);

        // add cross-product terms for numerator
        Rational s = new Rational((a.num / f) * (b.den / g) + (b.num / f) * (a.den / g),
                                  lcm(a.den, b.den));
...
Рейтинг: 0 / 0
25.01.2013, 20:39:41
    #38125334
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчеты с Rational
Вот это? Да похоже на то.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// return gcd(|m|, |n|)
    private static int gcd(int m, int n) {
        if (m < 0) m = -m;
        if (n < 0) n = -n;
        if (0 == n) return m;
        else return gcd(n, m % n);
    }

    // return lcm(|m|, |n|)
    private static int lcm(int m, int n) {
        if (m < 0) m = -m;
        if (n < 0) n = -n;
        return m * (n / gcd(m, n));    // parentheses important to avoid overflow
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Расчеты с Rational / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]