Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сократить дробь - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны числа m и n. Получить все натуральные числа,меньшие n, квадрат суммы цифр которых равен m http://www.cyberforum.ru/cpp-beginners/thread704266.html
Доброго времени суток) прошу вашей помощи. Даны числа m и n. Получить все натуральные числа,меньшие n, квадрат суммы цифр которых равен m .(m и n вводятся с клавиатуры) Необходимо написать через...
C++ Объяснить программу (Алгоритм планирования, Планировщик) Друзья, кто нибудь помогите объяснить как работает программа, по какому алгоритму планирования работает Планировщик, что конкретно делается. #include "stdafx.h" #include "conio.h" #include... http://www.cyberforum.ru/cpp-beginners/thread704264.html
Задача на координаты C++
N точек в пространств заданны своими координатами (Xi;Yi;Zi;) определить какие из них находятся на минимальном расстоянии друг от друга, сделать математическую постановку, алгоритма в виде блок схемы...
C++ Не работает перегрузка операторов при выводе в cout
написал свой класс ComplexNumber. перегрузил для него операторы +, -, *, /, <<. конструкции вида ComplexNumber a(5,10); ComplexNumber b(7, 12); cout << "a = " << a << endl; cout << "b = "...
C++ Получить строку, состоящую из пяти звездочек http://www.cyberforum.ru/cpp-beginners/thread704206.html
Получить строку, состоящую из пяти звездочек (символов "*"). Нужно вывести не символы, а именно строку. Помогите пожалуйста, очень нужно!
C++ Функция дужки(приоритет операций) в калькуляторе Надо сделать скобки в калькуляторе: сделать дополнительную ф-цию которая будет считать введеные даные после ввода "(", после ввода ")" возвращает результат в главную функцию(ну вместо ). Ну глянув на... подробнее

Показать сообщение отдельно
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 10:57
Пусть c - любой общий делитель a и b. Тогда http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{a}{b}=\frac{\left(\frac{a}{c} \right)}{\left(\frac{b}{c} \right)}. Далее если числитель и знаменатель этой дроби имеют общие делители, то её можно сократить аналогично. После того, как окажутся сокращены все получающиеся при сокращении эквивалентные дроби, окажется, что произведение всех использованных делителей равно наибольшему общему делителю a и b. Причём всякий общий делитель http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{a}{с} и http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{b}{с} одновременно является общим делителем a и b.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void f(int a, int b, int &p, int &q)
{
 int c;
 p=a;
 q=b;
 bool flag;
 for (flag=true; flag; )
 {
  for (flag=false, c=abs(p); c>0; --c)
  {  
   if (((abs(p)%c)==0)&&((abs(q)%c)==0))
   {
    p/=c;
    q/=c;
    flag=true;
   }
  }
 }
}
Добавлено через 6 минут
И целиком:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream.h>
void f(int a, int b, int &p, int &q);
int main ()
{
 int a, b, p, q;
 std::cout<<"введите числитель (a) и знаменатель (b):"<<std::endl;
 std::cout<<"a="<<std::endl;
 std::cin>>a;
 std::cout<<"b="<<std::endl;
 std::cin>>b;
 f(a,b,p,q);
 std::cout<<a<<"/"<<b<<"="<<p<<"/"<<q<<", то есть p="<<p<<", q="<<q<<endl;
}
void f(int a, int b, int &p, int &q)
{
 int c;
 p=a;
 q=b;
 bool flag;
 for (flag=true; flag; )
 {
  for (flag=false, c=abs(p); c>0; --c)
  {  
   if (((abs(p)%c)==0)&&((abs(q)%c)==0))
   {
    p/=c;
    q/=c;
    flag=true;
   }
  }
 }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru