Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 14.10.2021
Сообщений: 57

Найти рациональные числа в диапазоне [0,1], знаменатель которого не превышает n

14.10.2021, 12:36. Показов 2869. Ответов 37
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помощи с заданием.
Только начала изучать с++ и не совсем понимаю как нужно строить код.

Задание:

n натуральное число n<10. Нужно найти все рациональные числа в диапазоне [0,1], знаменатель которого не превышает n. После выполнения действия, программа должна предложить повторить действие без закрытия программы.

Заранее спасибо за любую помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2021, 12:36
Ответы с готовыми решениями:

Отсортировать рациональные числа в виде: <числитель> <знаменатель>
В файле Ratio содержатся рациональные числа в виде: &lt;числитель&gt; &lt;знаменатель&gt; Расположить их в порядке возрастание (сортировка). ...

Найти номер первого числа Фибоначчи, значение которого превышает 100
Найти номер первого числа Фибоначчи, значение которого превышает 100. Очень буду благодарна!!!

Найти все простые несократимые дроби, заключенные между 0 и 1 знаменатель которых не превышает 7
Прошу помогите!:help: Найти все простые несократимые дроби, заключенные между 0 и 1 знаменатель которых не превышает 7 (дробь задается...

37
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:01
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    int n;
    while(true)
    {
        while (true)
        {
            cin >> n;
            if (n > 0 && n < 10)
                break;
        }
        for (int i = 0; i < n; ++i)
            for (int j = 1; j < n; ++j)
                if (i / static_cast<double> (j) <= 1.0)
                    cout << i << "/" << j << " ";
        cout << endl;
    }
    
}
1
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
14.10.2021, 13:06
Цитата Сообщение от VerKod Посмотреть сообщение
После выполнения действия, программа должна предложить повторить действие без закрытия программы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <limits>
int main() {
    int n;
    char c;
    
    do {
        // ввод n и вывод рац. чисел
        ...
        
        std::cout << "\nany symbol - try again, 0 - exit: ";
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        c = std::cin.get();
    } while(c != '0');
 
    return 0;
}
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.10.2021, 13:07
VerKod,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
int main()
{
    int n;
    do
    {
        std::cout << "n = "; std::cin >> n;
        int a, b;
        for (b = 1; b <= n; b++)
        {
            for (a = 0; a <= b; a++)
                std::cout << a << "/" << b << "  ";
            std::cout << std::endl;
        }
    } while (n != 0);
    return 0;
}
Результат примера:
Code
1
2
3
4
5
6
n = 5
0/1  1/1
0/2  1/2  2/2
0/3  1/3  2/3  3/3
0/4  1/4  2/4  3/4  4/4
0/5  1/5  2/5  3/5  4/5  5/5
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:13
Volga_, а можете сделать так, чтобы вместо всех 0/1, 0/2, 0/3, 0/4, 0/5 выводился только 0, вместо 1/2, 2/4 только 1/2, вместо 1/1, 2/2, 3/3, 4/4, 5/5 только 1 и т.д. ?
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.10.2021, 13:15
Цитата Сообщение от Royal_X Посмотреть сообщение
а можете сделать так, чтобы вместо всех 0/1, 0/2, 0/3, 0/4, 0/5 выводился только 0, вместо 1/2, 2/4 только 1/2, вместо 1/1, 2/2, 3/3, 4/4, 5/5 только 1 и т.д. ?
Нет ! Это тоже рациональные числа как я понимаю.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:22
Цитата Сообщение от Volga_ Посмотреть сообщение
Это тоже рациональные числа как я понимаю.
я имел ввиду реализовать единственное несократимое представление рационального числа

Добавлено через 3 минуты
Volga_, рациональное число не обязательно представлять в виде дроби. Например, 0,5 - тоже рациональное число. Если же вывести ваш результат как числа типа double, то они будут повторяться.
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.10.2021, 13:24
Цитата Сообщение от Royal_X Посмотреть сообщение
единственное несократимое представление рационального числа
Но в задаче не вижу где нужно их единственное несократимое представление. Просто они являются рациональными числами.
Может быть мой код нужно делать еще условие n<10.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:27
Цитата Сообщение от Volga_ Посмотреть сообщение
Но в задаче не вижу где нужно их единственное несократимое представление. Просто они являются рациональными числами.
То что вы правильно решили задачу - это вне всяких сомнений. Мне просто самому интересно, как будет выглядеть код для вывода несократимого представления)
Цитата Сообщение от Volga_ Посмотреть сообщение
Может быть мой код нужно делать еще условие n<10.
ну это не очень страшно, главное сам принцип
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.10.2021, 13:28
Цитата Сообщение от Royal_X Посмотреть сообщение
рациональное число не обязательно представлять в виде дроби. Например, 0,5 - тоже рациональное число.
Нет. Посмотрите понятие рационального числа
Вот https://www.cyberforum.ru/cgi-bin/latex.cgi?Q=\begin{Bmatrix}<br />
\frac{m}{n}&|&m\in Z, n\in N<br />
\end{Bmatrix}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:31
Volga_, а что 0,5 нельзя представить как 1/2 или 2/4, 3/6/ 4/8...?

Добавлено через 1 минуту
просто записал как десятичную дробь
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.10.2021, 13:32
считаю требуется такой вывод:
n = 5
1/2=0.5

1/3=0.333333
2/3=0.666666

1/4=0.25
3/4=0.75

1/5=0.2
2/5=0.4
3/5=0.6
4/5=0.8
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.10.2021, 13:33
Цитата Сообщение от Royal_X Посмотреть сообщение
а что 0,5 нельзя представить как 1/2 или 2/4, 3/6/ 4/8...?
Конечно. Но когда говорить о представлении рационального числа мы будет не говорить о представлении вещественного числа. То есть вы только гарантируете их по понятию в математике.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:38
Цитата Сообщение от Yetty Посмотреть сообщение
считаю требуется такой вывод:
совершенно верно

Добавлено через 4 минуты
Volga_, я просто говорю, что от того, что напишу
0,5
0,25
0,(6)
вместо
1/2
1/4
2/3
эти числа не перестанут быть рациональными
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.10.2021, 13:39
Цитата Сообщение от Royal_X Посмотреть сообщение
просто записал как десятичную дробь
Нет. Дробь как я понимаю, не похожа на рациональное число. Например дробь: 2.3/5. А рациональное число 2/5.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:44
Volga_, нет. Рациональные числа можно представить по-разному: можно как обыкновенную дробь (то, что вы делаете), а можно и в десятичном представлении.
Напишите в гугле "rational numbers as decimals" и читайте.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.10.2021, 13:46
Цитата Сообщение от Royal_X Посмотреть сообщение
совершенно верно
Royal_X, я не про форму вывода числа (это вторично), а про то, что не все числа сообщения #4 следует выводить
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:49
Yetty, я вас сразу понял. Вообще, я заговорил о представлении рациональных чисел тоже в том контексте, что не все следует выводить. Ведь, если ТС захочет вывести эти рациональные числа как десятичные дроби типа double/float, то она удивится почему числа повторяются.
0
 Аватар для Annemesski
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,683
14.10.2021, 13:53
Volga_, рациональным называется такое число которое можно представить как отношение двух целых, решительно не важно в каком виде число будет записано, даже Ваше
Цитата Сообщение от Volga_ Посмотреть сообщение
Например дробь: 2.3/5.
является рациональным числом, так как представимо как отношение 23 к 50 оно же 23/50 оно же 0.46.
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6159 / 2850 / 1042
Регистрация: 01.06.2021
Сообщений: 10,401
14.10.2021, 13:54
Цитата Сообщение от Annemesski Посмотреть сообщение
является рациональным числом, так как представимо как отношение 23 к 50 оно же 23/50 оно же 0.46.
+100500
но с Volga_ я не стану продолжать спорить, он очень упрямый
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2021, 13:54
Помогаю со студенческими работами здесь

Найти все простые несократимые дроби заключенные между 0 и 1, знаменатель которых не превышает 7
ребятки, вообще не имею представления как это будет выглядеть, в c# вообще дно

Напечатать натуральные числа, квадрат которых не превышает n, найти первое число, квадрат которого больше n
Дано число n. а) Напечатать те натуральные числа, квадрат которых не превышает n. б) Найти первое натуральное число, квадрат которого...

Написать программу, выводящая число, квадрат которого не превышает введенного числа
В общем нужно написать программу, что бы она выводила число, квадрат которого не превышает введенного числа. К примеру мы ввели 10, нам...

Вывести все Простые дроби из интервала (0; 1), знаменатель которых не превышает n.
1) Дан многоугольник, вершины которого заданы целочисленными координатами. Вывести на экран количество точек, которые имеют целочисленные...

Рациональные числа выразить приближенно десятичными дробями и найти погрешности
1)Рациональные числа 3/7, 1/35, 47/6 выразить приближенно десятичными дробями и найти: а)предельную абсолютную погрешность. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru