Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2019, 22:28   #1
lololll
Новичок
Джуниор
 
Регистрация: 24.02.2019
Сообщений: 4
По умолчанию [C++] Даны две рациональные дроби: a/b и c/d. Сложите их и результат представьте в виде несократимой дроби m/n.

Даны две рациональные дроби: a/b и c/d. Сложите их и результат представьте в виде несократимой дроби m/n.


вот такой код у меня получился но пишет требуется оператор:

Код:
#include<iostream>
using namespace std;
int main()
{
	int a, b, c, d, m, n, i;
	cin >> a >> b >> c >> d;
	m = a * d + b * c;
	n = b * d;
	i = 2;
	while (i <= n && i <= m) {
		if (n % i == 0 && m % i == 0)
			n = n / 1;
			m = m / 1;
		
	
      	else i++;
		
	
	cout << m << " " << n;
	return 0;
}

Последний раз редактировалось lololll; 24.02.2019 в 23:06.
lololll вне форума Ответить с цитированием
Старый 24.02.2019, 23:03   #2
lololll
Новичок
Джуниор
 
Регистрация: 24.02.2019
Сообщений: 4
По умолчанию Помогите уменьшить масимальное время работы программы

Даны две рациональные дроби: a/b и c/d. Сложите их и результат представьте в виде несократимой дроби m/n.

у меня пройденно 34 теста а в остальных пишет превышено максимальное время работы программы


Код:
#include<iostream>
using namespace std;
int main()
{
    int a, b, c, d, m, n, i;
    cin >> a >> b >> c >> d;
    m = a * d + b * c;
    n = b * d;
    i = 2;
    while (i <= n && i <= m) {
        if (n % i == 0 && m % i == 0)
        {
            n = n / 1;
            m = m / 1;
        }
        else        i++;
    }
    
    cout << m << " " << n;
    return 0;
}
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 25.02.2019 в 02:16.
lololll вне форума Ответить с цитированием
Старый 25.02.2019, 00:42   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

1.
Код:
while (i <= n && i <= m) {
закрывающая скобка где?
2. из-за неправильного форматирования у вас повис else
Код:
if (n % i == 0 && m % i == 0)
  n = n / 1;
m = m / 1;
else i++;
p51x вне форума Ответить с цитированием
Старый 25.02.2019, 00:44   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы когда копипастили даже не думали? Какой смысл делить на 1?
p51x вне форума Ответить с цитированием
Старый 25.02.2019, 02:08   #5
lololll
Новичок
Джуниор
 
Регистрация: 24.02.2019
Сообщений: 4
По умолчанию

я пробовал без деления и все равно не проходит
lololll вне форума Ответить с цитированием
Старый 25.02.2019, 08:46   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Естественно не пройдет, ибо деление там надо. Вы хоть на алгоритмом немного задумайтесь.
p51x вне форума Ответить с цитированием
Старый 25.02.2019, 09:04   #7
Эдуард81
 
Регистрация: 19.02.2019
Сообщений: 3
По умолчанию

дайте вводные данные
Эдуард81 вне форума Ответить с цитированием
Старый 25.02.2019, 10:58   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

10/12 146/60 вас устроят? Вы тоже видите глубокий смысл в делении на 1?
p51x вне форума Ответить с цитированием
Старый 25.02.2019, 22:42   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Интуёвина смутно подсказывает мне, что делить хотели на i, а на 1 оно просто похоже

Последний раз редактировалось digitalis; 25.02.2019 в 22:45.
digitalis вне форума Ответить с цитированием
Старый 26.02.2019, 10:36   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Интуёвина смутно подсказывает мне, что делить хотели на i, а на 1 оно просто похоже
Бинго!


https://ideone.com/lFxf9X
Код:
#include<iostream>
using namespace std;
int main()
{
    int a, b, c, d, m, n, i;
    cin >> a >> b >> c >> d;
    m = a * d + b * c;
    n = b * d;
    i = 2;
    while (i <= n && i <= m) {
        if (n % i == 0 && m % i == 0)
        {
            n = n / i;
            m = m / i;
        }
        else        i++;
    }
 
    cout << m << " " << n;
    return 0;
}
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA. Напишите процедуру на языке VBA, которая определяет сократимость дроби a/b (b≠0) . Вычисление наибольшего общего делителя (НОД) чисел a и b оформить в виде функции. Lizka Microsoft Office Excel 2 23.04.2017 11:07
Дроби kliuzhik Помощь студентам 6 11.09.2015 07:10
Сумма ста слогаемых в виде дроби Lis From Russian Паскаль, Turbo Pascal, PascalABC.NET 4 08.02.2011 22:51
Десятичные дроби в двоичном виде Ukrajinec Помощь студентам 2 13.04.2009 11:29
Как отображать дроби в стандартном виде RamireZ Общие вопросы Delphi 4 20.10.2008 21:31