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

Вычислить и напечатать обратные целых чисел

02.12.2011, 13:47. Показов 3208. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вычислить и напечатать обратные целых чисел от 2 до 51 со 100 цифрами после "."
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2011, 13:47
Ответы с готовыми решениями:

Напечатать столбиком кубы всех целых чисел
напечатать столбиком кубы всех целых чисел от а до 50 (значение а водится с клавиатуры (a <= 50);

Напечатать квадраты всех целых чисел в заданном диапазоне
Напечатать квадраты всех целых чисел от 0 до 𝑁, используя только операции сложения и вычитания, не...

Подсчитать и напечатать среднее значение нескольких целых чисел
Напишите программу, которая подсчитывает и печатает среднее значение нескольких целых чисел....

Вычислить обратные значения тех из тех чисел, значения которых не равны нулю
Даны три числа x y z.Вычислить обратные значения тех из них, значения которых не равны нулю ,...

16
Заблокирован
Автор FAQ
02.12.2011, 14:18 2
Цитата Сообщение от azhankuaku Посмотреть сообщение
со 100 цифрами после
- это кому такая точность понадобилась
Хотел по-"нубски" решить задачу std::setpersision но как оказалось всё остановилось на 12-м знаке, далее просто нули идут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
int main()
{
    cout<<"Enter interval [a;b]\n";
    cout<<"a = ";int a;cin>>a;
    cout<<"b = ";int b;cin>>b;
    ofstream ofs("div.txt");
    for(int i = a; i <= b; i++)
    {
        if(ofs)
            ofs<<"1/"<<setw(2)<<i<<" = "<<setprecision(100)<<1.0/i<<endl;
        cout<<"1/"<<setw(2)<<i<<" = "<<1.0/i<<endl;
    }
    system("pause");
    return 0;
}
Ниже код и вывод в текстовый файл
1/ 1 = 10000000000000000000000000000000000000000000000000000000000000000
1/ 2 = 0.50000000000000000000000000000000000000000000000000000000000000000
1/ 3 = 0.333333333333333310000000000000000000000000000000000000000000000000000000000000 000
развернуть
1/ 4 = 0.250000000000000000000000000000000000000000000000000000000000000000
1/ 5 = 0.200000000000000010000000000000000000000000000000000000000000000000000000000000 000
1/ 6 = 0.166666666666666660000000000000000000000000000000000000000000000000000000000000 000
1/ 7 = 0.142857142857142850000000000000000000000000000000000000000000000000000000000000 000
1/ 8 = 0.1250000000000000000000000000000000000000000000000000000000000000000
1/ 9 = 0.111111111111111100000000000000000000000000000000000000000000000000000000000000 00
1/10 = 0.100000000000000010000000000000000000000000000000000000000000000000000000000000 000
1/11 = 0.090909090909090912000000000000000000000000000000000000000000000000000000000000 0000
1/12 = 0.083333333333333329000000000000000000000000000000000000000000000000000000000000 0000
1/13 = 0.076923076923076927000000000000000000000000000000000000000000000000000000000000 0000
1/14 = 0.071428571428571425000000000000000000000000000000000000000000000000000000000000 0000
1/15 = 0.066666666666666666000000000000000000000000000000000000000000000000000000000000 0000
1/16 = 0.06250000000000000000000000000000000000000000000000000000000000000000
1/17 = 0.058823529411764705000000000000000000000000000000000000000000000000000000000000 0000
1/18 = 0.055555555555555552000000000000000000000000000000000000000000000000000000000000 0000
1/19 = 0.052631578947368418000000000000000000000000000000000000000000000000000000000000 0000
1/20 = 0.050000000000000003000000000000000000000000000000000000000000000000000000000000 0000
1/21 = 0.047619047619047616000000000000000000000000000000000000000000000000000000000000 0000
1/22 = 0.045454545454545456000000000000000000000000000000000000000000000000000000000000 0000
1/23 = 0.043478260869565216000000000000000000000000000000000000000000000000000000000000 0000
1/24 = 0.041666666666666664000000000000000000000000000000000000000000000000000000000000 0000
1/25 = 0.040000000000000001000000000000000000000000000000000000000000000000000000000000 0000
1/26 = 0.038461538461538464000000000000000000000000000000000000000000000000000000000000 0000
1/27 = 0.037037037037037035000000000000000000000000000000000000000000000000000000000000 0000
1/28 = 0.035714285714285712000000000000000000000000000000000000000000000000000000000000 0000
1/29 = 0.034482758620689655000000000000000000000000000000000000000000000000000000000000 0000
1/30 = 0.033333333333333333000000000000000000000000000000000000000000000000000000000000 0000
1/31 = 0.032258064516129031000000000000000000000000000000000000000000000000000000000000 0000
1/32 = 0.031250000000000000000000000000000000000000000000000000000000000000000
1/33 = 0.030303030303030304000000000000000000000000000000000000000000000000000000000000 0000
1/34 = 0.029411764705882353000000000000000000000000000000000000000000000000000000000000 0000
1/35 = 0.028571428571428571000000000000000000000000000000000000000000000000000000000000 0000
1/36 = 0.027777777777777776000000000000000000000000000000000000000000000000000000000000 0000
1/37 = 0.027027027027027029000000000000000000000000000000000000000000000000000000000000 0000
1/38 = 0.026315789473684209000000000000000000000000000000000000000000000000000000000000 0000
1/39 = 0.025641025641025640000000000000000000000000000000000000000000000000000000000000 000
1/40 = 0.025000000000000001000000000000000000000000000000000000000000000000000000000000 0000
1/41 = 0.024390243902439025000000000000000000000000000000000000000000000000000000000000 0000
1/42 = 0.023809523809523808000000000000000000000000000000000000000000000000000000000000 0000
1/43 = 0.023255813953488372000000000000000000000000000000000000000000000000000000000000 0000
1/44 = 0.022727272727272728000000000000000000000000000000000000000000000000000000000000 0000
1/45 = 0.022222222222222223000000000000000000000000000000000000000000000000000000000000 0000
1/46 = 0.021739130434782608000000000000000000000000000000000000000000000000000000000000 0000
1/47 = 0.021276595744680851000000000000000000000000000000000000000000000000000000000000 0000
1/48 = 0.020833333333333332000000000000000000000000000000000000000000000000000000000000 0000
1/49 = 0.020408163265306121000000000000000000000000000000000000000000000000000000000000 0000

1/50 = 0.020000000000000000000000000000000000000000000000000000000000000000
Миниатюры
Вычислить и напечатать обратные целых чисел  
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.12.2011, 14:28 3
Цитата Сообщение от azhankuaku Посмотреть сообщение
Вычислить и напечатать обратные целых чисел от 2 до 51 со 100 цифрами после "."
Найди период, как здесь
Перевести простую пробь в десятичную
А дальше все просто
1
Заблокирован
Автор FAQ
02.12.2011, 14:52 4
Байт, где период у данной дроби???
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1/43
или этой
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1/49
- не все иррациональные дроби периодичны!

Добавлено через 1 минуту
azhankuaku, подумав немного всё же хочу попробавать продвинутую "нубскую" версию, уже модернезирую код из поста 2
0
silent_1991
02.12.2011, 15:10
  #5

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не все иррациональные дроби периодичны!
Я вам куда больше скажу - ни одно иррациональное число не является периодическим :D

2
Заблокирован
Автор FAQ
02.12.2011, 15:28 6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
попробавать продвинутую "нубскую" версию, уже модернезирую код из поста 2
azhankuaku, Я доделал - и никаких malloc-ов динамической памяти и прочей х*ени!
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
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
 
string irrational_div(int val, int div, int precision)
{
    string str;
    str += (char)('0' + val / div);
    str += ".";
    for(int i = 0; i < precision; i++)
    {
        val *= 10;
        str += (char)('0' + val / div);
        val = val % div;
    }
    return str;
}
 
int main()
{
    cout<<"Enter interval [a;b]\n";
    cout<<"a = ";int a;cin>>a;
    cout<<"b = ";int b;cin>>b;
    cout<<"Enter precision : ";
    int precision;cin>>precision;
    ofstream ofs("div.txt");
    for(int i = a; i <= b; i++)
    {
        if(ofs)
            ofs<<"1/"<<setw(2)<<i<<" = "
               <<irrational_div(1, i, 100)<<endl;
        cout<<"1/"<<setw(2)<<i<<" = "
            <<irrational_div(1, i, 100)<<endl;
    }
    if(ofs)
        ofs.close();
    system("pause");
    return 0;
}
Вывод в файл (от 7-ми до 49)
1/ 7 = 0.142857142857142857142857142857142857142857142857142857142857142857142857142857 1428571428571428571428
развернуть
1/ 8 = 0.125000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/ 9 = 0.111111111111111111111111111111111111111111111111111111111111111111111111111111 1111111111111111111111
1/10 = 0.100000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/11 = 0.090909090909090909090909090909090909090909090909090909090909090909090909090909 0909090909090909090909
1/12 = 0.083333333333333333333333333333333333333333333333333333333333333333333333333333 3333333333333333333333
1/13 = 0.076923076923076923076923076923076923076923076923076923076923076923076923076923 0769230769230769230769
1/14 = 0.071428571428571428571428571428571428571428571428571428571428571428571428571428 5714285714285714285714
1/15 = 0.066666666666666666666666666666666666666666666666666666666666666666666666666666 6666666666666666666666
1/16 = 0.062500000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/17 = 0.058823529411764705882352941176470588235294117647058823529411764705882352941176 4705882352941176470588
1/18 = 0.055555555555555555555555555555555555555555555555555555555555555555555555555555 5555555555555555555555
1/19 = 0.052631578947368421052631578947368421052631578947368421052631578947368421052631 5789473684210526315789
1/20 = 0.050000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/21 = 0.047619047619047619047619047619047619047619047619047619047619047619047619047619 0476190476190476190476
1/22 = 0.045454545454545454545454545454545454545454545454545454545454545454545454545454 5454545454545454545454
1/23 = 0.043478260869565217391304347826086956521739130434782608695652173913043478260869 5652173913043478260869
1/24 = 0.041666666666666666666666666666666666666666666666666666666666666666666666666666 6666666666666666666666
1/25 = 0.040000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/26 = 0.038461538461538461538461538461538461538461538461538461538461538461538461538461 5384615384615384615384
1/27 = 0.037037037037037037037037037037037037037037037037037037037037037037037037037037 0370370370370370370370
1/28 = 0.035714285714285714285714285714285714285714285714285714285714285714285714285714 2857142857142857142857
1/29 = 0.034482758620689655172413793103448275862068965517241379310344827586206896551724 1379310344827586206896
1/30 = 0.033333333333333333333333333333333333333333333333333333333333333333333333333333 3333333333333333333333
1/31 = 0.032258064516129032258064516129032258064516129032258064516129032258064516129032 2580645161290322580645
1/32 = 0.031250000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/33 = 0.030303030303030303030303030303030303030303030303030303030303030303030303030303 0303030303030303030303
1/34 = 0.029411764705882352941176470588235294117647058823529411764705882352941176470588 2352941176470588235294
1/35 = 0.028571428571428571428571428571428571428571428571428571428571428571428571428571 4285714285714285714285
1/36 = 0.027777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777
1/37 = 0.027027027027027027027027027027027027027027027027027027027027027027027027027027 0270270270270270270270
1/38 = 0.026315789473684210526315789473684210526315789473684210526315789473684210526315 7894736842105263157894
1/39 = 0.025641025641025641025641025641025641025641025641025641025641025641025641025641 0256410256410256410256
1/40 = 0.025000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000
1/41 = 0.024390243902439024390243902439024390243902439024390243902439024390243902439024 3902439024390243902439
1/42 = 0.023809523809523809523809523809523809523809523809523809523809523809523809523809 5238095238095238095238
1/43 = 0.023255813953488372093023255813953488372093023255813953488372093023255813953488 3720930232558139534883
1/44 = 0.022727272727272727272727272727272727272727272727272727272727272727272727272727 2727272727272727272727
1/45 = 0.022222222222222222222222222222222222222222222222222222222222222222222222222222 2222222222222222222222
1/46 = 0.021739130434782608695652173913043478260869565217391304347826086956521739130434 7826086956521739130434
1/47 = 0.021276595744680851063829787234042553191489361702127659574468085106382978723404 2553191489361702127659
1/48 = 0.020833333333333333333333333333333333333333333333333333333333333333333333333333 3333333333333333333333

1/49 = 0.020408163265306122448979591836734693877551020408163265306122448979591836734693 8775510204081632653061
Миниатюры
Вычислить и напечатать обратные целых чисел  
0
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
02.12.2011, 15:33 7
1/43=0,(023255813953488372093)
1/49=0,(020408163265306122448979591836734693877551)
1
Заблокирован
Автор FAQ
02.12.2011, 15:37 8
golatin, лучше см алгоритм...
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.12.2011, 15:47 9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не все иррациональные дроби периодичны!
А где ты увидел иррациональные?
Но твое утверждение верно.
Как и утверждение silent_1991. Даже, если дозволено сравнивать верные утверждение, его утверждение вернее
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
и никаких malloc-ов динамической памяти и прочей х*ени!
Обижаешь! Все-таки та программка решает несколько иную, могу предположить, более сложную задачу.

Отдельное спасибо golatin, не поленился человек! Или это все-таки программкой посчитано?
2
Заблокирован
Автор FAQ
02.12.2011, 16:23 10

Не по теме:

Байт, период можно уже будет вычислять посредством методов std::string как по мне изящней, впрочем это дело вкуса...



Цитата Сообщение от silent_1991 Посмотреть сообщение
Я вам куда больше скажу - ни одно иррациональное число не является периодическим
- я говорил о дроби а не числе...
1/47 = 0,(0212765957446808510638297872340425531914893617)

Добавлено через 9 минут
Как оказалось период иррациональной дроби равен по знакам заначению делителя
Например период:
1/67 = 0,(014925373134328358208955223880597014925373134328358208955223880597)
оказалось 67 цифр.
Так что забираю слова о непериодичности иррациональных дробей - получается что все иррациональные дроби периодичны их период определяется значением делителя.
Хмм ещё бы кроме банального подсчёта доказать выкладками...
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.12.2011, 16:27 11

Не по теме:

-=ЮрА=-, хорошо, тогда так: с помощью бесконечной непериодической дроби может быть представлено только иррациональное число. Такую дробь, возможно, с некоторой натяжкой, можно назвать "иррациональной". И никакую другую дробь, особенно если речь идёт о периоде.
Суть в том, что в вашей предыдущей фразе слово "иррациональные" лишнее. Если его оттуда убрать - всё встанет на свои места.



Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
период иррациональной дроби
:wall:
Откуда вы этот термин выкопали? С чего вы взяли, что дробь 1/67, кхм... "иррациональная"?

1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.12.2011, 16:35 12
-=ЮрА=-, У меня закрались сомнения, а знаете ли вы, что такое рациональное и иррациональное число?
Было бы приятно услышать от вас определение.
2
Заблокирован
Автор FAQ
02.12.2011, 16:56 13

Не по теме:

Байт, лично Вам скажу - напишите сначало свой код а потом делайте замечания. В топике выложили код другого человека и ещё что то хотите, я сейчас готовлю ответ silent_1991, потом и вам отвечу если будет время...



Добавлено через 14 минут
Цитата Сообщение от silent_1991 Посмотреть сообщение
"иррациональная"
- по этому поводу отвечаю - у меня имелось неверное представление об иррациональной дроби - это дробъ вида sin(x)/x^2
Т.е не многочлен на многочлен как говориться в определении.

Идём далле
Цитата Сообщение от silent_1991 Посмотреть сообщение
с помощью бесконечной непериодической дроби может быть представлено только иррациональное число.
- оно может быть представлено ссумой правильных и неправильных дробей(например в Вики расписано за Рациональное приближение Пи), которые в свою очереь по отдельности имеют период причём он укладывается в приславутые
Цитата Сообщение от azhankuaku Посмотреть сообщение
100 цифр после
запятой. Так что любое отношение m/n где m и n целые иммет период длинна которого определяется значением n.
Вначале погорячился сказав что не у всякого m/n есть период (всё-таки период в 67 и более знаков ещё найти надо)!

Теперь у меня вопрос - отношение этой всей х*ени с иррациональностью к заданию?Я что неверный алгоритм привёл или здесь экзамен по математике???!
0
silent_1991
02.12.2011, 17:01
  #14

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
приближение
- ключевое слово.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
100 цифр после запятой
Все мои посты были написаны с точки зрения математики, а не точности представления чисел в компьютере и погрешности при сравнении.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Я что неверный алгоритм привёл
Всего лишь неверные термины, которые вводят людей в заблуждение.

1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.12.2011, 17:18 15
-=ЮрА=-, Лично мне с Вами все понятно.
Желаю удачи!
0
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
02.12.2011, 18:06 16
Закрыть тему
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def delenie(n,m):
    print "n=%s m=%s"%(n,m)
    result=[]
    stack=[]
    result.append(str(n/m))
    n=10*(n%m)
    result.append(",")
    while(1):
        stack.append(n)
        result.append(str(n/m))
        n=10*(n%m)
        if n in stack:
            result.insert(result.index(",")+1+stack.index(n),"(")
            result.insert((len(result)),")")
            break
        
    print "".join(result)
Python
1
2
3
4
>>> delenie(55,34600)
n=55 m=34600
0,001(5895953757225433526011560693641618497109826)
>>>
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.12.2011, 22:21 17
golatin, Увы, я с этим семейством удавов не знаком, но вам я верю
0
02.12.2011, 22:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2011, 22:21
Помогаю со студенческими работами здесь

Дан одномерный массив целых чисел напечатать все четные эелементы (посмотрете код)
Дан одномерный массив целых чисел напечатать все четные эелементы (посмотрете код) Скажите, что я...

Дан двумерный массив целых чисел. Вычислить количество четных чисел среди элементов, встречающихся в массиве ровно 3 раза
Кто может, помогите пожалуйста:)

Дан неупорядоченный массив целых чисел. Найти самый длинный участок строгого возрастания, напечатать индексы
Дан неупорядоченный массив целых чисел. Найти самый длинный участок строгого возрастания,...

Вычислить и напечатать среднее значение всех введённых чисел
Числа Х1,Х2.... последовательно поступают с устройства ввода.Все числа хранить в памяти нет...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru