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

Числа до 100 десятичных знаков - это как?

25.10.2014, 20:20. Показов 3163. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Числа до 100 десятичных знаков - это как? Мне нужно написать программу для работы с ними (лабораторная). Подскажите, пожалуйста: какое должно быть минимальное и максимальное число при таком условии?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2014, 20:20
Ответы с готовыми решениями:

Напечатать k десятичных знаков числа 1/n
22. Даны натуральные числа n, k, причем n > 0. Напечатать k десятичных знаков числа 1/n.Программа...

Напечатать k десятичных знаков числа 1/n
Данны натуральные числа n и k, n>1. Напечатать k десятичных знаков числа 1/n. Программа должна...

Напечатать k десятичных знаков числа 1/n
Здравствуйте. Даны натуральные числа n и k, n > 1. Напечатать k десятичных знаков числа 1/n....

Напечатать k десятичных знаков числа 1/n
Даны натуральные числа n и k, n > 1. Напечатать k десятичных знаков числа 1/n. (При наличии двух...

24
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
26.10.2014, 00:18 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от castaway Посмотреть сообщение
а 43 откуда взялось?
от taras atavin,
но давай порассуждаем
допустим 42 байта 42*8 =336 один бит отдаем знаку 335
значит получается 2335 примерно 32*1099
но при таких больших значениях скорее всего не будет действовать правило 210= 103
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
26.10.2014, 00:54 22
ValeryS, я, как бы, не подразумевал какие то правила. Мне просто не понятен ход его мыслей.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 09:31 23
Цитата Сообщение от ValeryS Посмотреть сообщение
значит получается 2335 примерно 32*1099
но при таких больших значениях скорее всего не будет действовать правило 210= 103
Нет такого правила. Зато есть правило: логарифм по другому основанию равен логарифму по старому основанию, умноженному на логрифм основания. Хотя да, надо логарифмировать гугол, а не десять гуглов. Десятичный лограрим гугла равен 100, у него 100 нолей и 101 знак, двоичный логарифм десяти 3.3219280948873623478703194294894 и того 333 бита 42 байта равны 336-ти битам, диапазон от https://www.cyberforum.ru/cgi-bin/latex.cgi?-2^{335} до https://www.cyberforum.ru/cgi-bin/latex.cgi?2^{335}-1. То есть от примерно минус четырёх гуглов до примерно плюс четырёх гуглов.

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
расчет отсюда 210 примерно 103
Нет.

Добавлено через 43 минуты
https://www.cyberforum.ru/cgi-bin/latex.cgi?2^{300}\approx 2*10^{90}, https://www.cyberforum.ru/cgi-bin/latex.cgi?2^{470}\approx 3*10^{141}, https://www.cyberforum.ru/cgi-bin/latex.cgi?2^{990}\approx 10^{298}.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
26.10.2014, 09:40 24
Как все ваши вычисления помогут ТС реализовать задачу?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
26.10.2014, 12:34 25
Вот сложение чисел любой разрядности. Код не слишком оптимальный, но, вроде бы, работающий:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <string.h>
 
using namespace std;
 
char* LongAdd(char* A1, char* A2)
{
      int l1,l2,l,i,sh,a1,a2,k;
      char *R;
      l1=strlen(A1);
      l2=strlen(A2);
      l=((l1>l2)?l1:l2)+2;
 
      R=new char[l];
 
      for (i=0; i<l; i++) R[i]=0;
     
      for (i=l1-1; i>=0; i--) R[(l-1)-(l1-i)]=A1[i]-'0';
 
      sh=0;
 
      for (i=l2-1; i>=0; i--)
      {
          a1=R[(l-1)-(l2-i)];
          a2=A2[i]-'0';
          R[(l-1)-(l2-i)]=((sh+a1+a2)%10); //+'0';
          sh=(sh+a1+a2)/10;
      }
 
      i=(l-l2-2);
 
      while (1)
      {
            if (sh==0) break;
            a1=R[i]+sh;
            R[i]=(a1%10);
            sh=a1/10;
            i--;
       }
       
       if (R[0]==0) 
       { 
          for (i=0; i<l-2; i++) R[i]=R[i+1]+'0';
          R[l-1]=0;
       }
       else
          for (i=0; i<l-1; i++) R[i]=R[i]+'0';
       
       return R;
}     
 
int main(int argc, char *argv[])
{
    char *S1="9999999999999999999999999999999999999999999999999999";
    char *S2="3463632746376437863";
    
    char *R;
    
    R=LongAdd(S1,S2);
    
    cout << R << endl;
    
    delete R;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
26.10.2014, 12:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2014, 12:34
Помогаю со студенческими работами здесь

Напечатать k десятичных знаков числа 1/n
Даны натуральные числа n и k, n &gt; 1. Напечатать k десятичных знаков числа 1/n. (При наличии двух...

вывести k десятичных знаков числа 1/n
При решении данной задачи нельзя использовать массивы, а также функции преоброзования типов и...

Массив: Слишком большие числа в массиве, хотя стоят ограничения диапазона (-100,100), как мне исправить это?
Доброго времени суток. У меня выходят слишком большие числа в массиве, хотя стоят ограничения...

Получить последовательность десятичных цифр числа 100!
Прогу надо написать в GNU Octave


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

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