0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 12
1

Напечатать все цифры десятичной записи числа 2^500

15.06.2021, 11:27. Показов 1085. Ответов 6
Метки нет (Все метки)

Напечатать все цифры десятичной записи чисел 2^500 и 1!+2!+3!+...+100!. (Представить "длинные" натуральные числа в виде массивов из цифр и реализовать нужные операции над ними.)
ПОМОГИТЕ НУЖНО НА С++ СРОЧНО!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2021, 11:27
Ответы с готовыми решениями:

Напечатать в обратном порядке цифры десятичной записи целого не минусового числа N.
Помогите с программой Рекурсивно описать процедуру RevPrint (N), которая печатает в обратном...

Найти все цифры десятичной записи числа(не понимаю смысл задания)
Первая лабораторная по ООП. Нужно "Найти все цифры десятичной записи числа 3512". Проблема в том,...

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

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

6
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 12
17.06.2021, 10:44  [ТС] 2
Напечатать все цифры десятичной записи чисел 2^500 и
1! +2! +3! + ... + 100 !. (Рекомендация: представить «длинные» натуральные числа в виде
массивов из цифр и реализовать нужные операции над ними).
0
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 12
17.06.2021, 10:55  [ТС] 3
Нужен код на С++ срочно. Хелп
0
1999 / 1118 / 473
Регистрация: 11.10.2018
Сообщений: 5,707
17.06.2021, 11:03 4
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
  int k, m, Cnt;
  unsigned char N[170] = {0};
  
  //Примечание умножение на 2 - сдвиг влево на 1 разряд
  N[169] = 2;      //2^1
  
  for(k = 2; k < 500; k++)
  {
    //Сдвиг влево на 1 разряд
    for(m = 0; m < 170; m++)
    {
      N[m] <<= 1;
      if((N[m] != 0) && (N[m] & 0x80))
          N[m-1]++;
    }
  }
  
  Cnt = 0;
  for(m = 0; m < 170; m++)
  {
      cout << (int)N[m];
      Cnt++;
      if(Cnt > 50)
      {
          cout << '\n';
          Cnt = 0;   
      }
  }
  
  return 0;
}
0
583 / 487 / 370
Регистрация: 05.11.2013
Сообщений: 1,262
Записей в блоге: 6
17.06.2021, 11:37 5
У меня вышло
Код
2^500 = 327339060789614187001318969682759915221664204604306478948329136809613379
6404674554883270092325904157150886684127560071009217256545885393053328527589376
(число здесь разорвано)
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
#include <iostream>
using namespace std;
 
#define MAX_DIGITS 100000 /*максимально допустимое количество цифр*/
 
int multiply(int x, int res[], int res_size) {
 //Умножаем x на число res[], его количество цифр д.б. в res_size
 //Изменит массив res и вернёт новый res_size
 int temp = 0;
 for (int i = 0; i < res_size; i++) {
  int prod = res[i] * x + temp;
  res[i] = prod % 10;
  temp = prod / 10;
 }
 while (temp) {
  res[res_size] = temp % 10;
  temp = temp / 10;
  res_size++;
 }
 return res_size;
}
 
void power(int x, int n) { //x в степени n
 int res[MAX_DIGITS];
 int res_size = 0;
 int temp = x;
 
 while (temp != 0) { //Заполнение массива
  res[res_size++] = temp % 10;
  temp = temp / 10;
 }
 for (int i = 2; i <= n; i++) //Вычисление x в степени n умножением
  res_size = multiply(x, res, res_size);
 
 cout << x << "^" << n << " = ";
 for (int i = res_size - 1; i >= 0; i--) cout << res[i];
}
 
int main() {
 int exponent = 500;
 int base = 2;
 power(base, exponent);
 cin.get(); return 0;
}
А предыдущая программа сказала вот это:
Код
000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000004000
000000000000000000000000000000000000000000000000000
00000000000000000
0
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 12
17.06.2021, 11:40  [ТС] 6
СПАСИБО, ЕСЛИ ЭТО ПО ЗАДАНИЮ. ТАМ С НИЗУ НАПИСАНО
0
21 / 12 / 9
Регистрация: 02.03.2019
Сообщений: 46
17.06.2021, 12:10 7
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
#include <iostream>
 
using namespace std;
 
const int sz = 160;
 
void print(int a[]) {
    int last = sz - 1;
    while (last > 0 && a[last] == 0) {
        last--;
    }
 
    for(int i = last; i >= 0; i--) {
        cout << a[i];
    }
}
 
void add(int a[], int b[]) {
    int carry = 0;
    for(int i = 0; i < sz; i++) {
        carry = a[i] + b[i] + carry;
        a[i] = carry % 10;
        carry /= 10;
    }
}
 
void mult(int a[], int b) {
    int carry = 0;
    for(int i = 0; i < sz; i++) {
        carry = carry + a[i] * b;
        a[i] = carry % 10;
        carry /= 10;
    }
}
 
int main()
{
    int a[sz] = {0}, f[sz] = {0}, sum[sz] = {0};
    a[0] = 1;
    for(int i = 0; i < 500; i++) {
        mult(a, 2);
    }
    cout << "2^500 :\n";
    print(a);
 
    f[0] = 1;
    for(int i = 1; i <= 100; i++) {
        mult(f, i);
        add(sum, f);
    }
    cout << "\n\n1!+2!+3!+...+100! :\n";
    print(sum);
 
    return 0;
}
Результат:
Код
2^500 :
32733906078961418700131896968275991522166420460430647894832913680961337964046745
54883270092325904157150886684127560071009217256545885393053328527589376

1!+2!+3!+...+100! :
94269001683709979260859834124473539872070722613982672442938359305624678223479506
023400294093599136466986609124347432647622826870038220556442336528920420940313
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2021, 12:10
Помогаю со студенческими работами здесь

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

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

В десятичной записи числа 42*4* пропущены 2 цифры. Определите эти цифры, если известно, что число кратно 72.
Помогите,пожалуйста! С++

Выбросить из десятичной записи числа цифры 3 и 7
.2. Дано натуральное число n. Выбросите из записи этого числа цифры 3 и 7, оставив прежним порядок...

Разделить цифры десятичной записи числа стоящие на нечётных местах на 3
Задание звучит так: Дано число. Разделить цифры десятичной записи этого числа, стоящие на нечётных...

Напечатать все цифры десятичной записи чисел 2^500 и 1!+2!+3!+.+100!.(Представить "длинные" натуральные числа в виде массивов из цифр)
Напечатать все цифры десятичной записи чисел 2500 и 1!+2!+3!+...+100!. (Представить &quot;длинные&quot;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru