319 / 216 / 114
Регистрация: 14.05.2020
Сообщений: 890
1

Расхождение на 12!

22.06.2020, 22:41. Показов 1124. Ответов 5

Author24 — интернет-сервис помощи студентам
Как использовать два и более в одной ячейки вектора?
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
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
int main(void)
{
    vector<int>arr(20);
 
    size_t f; cin >> f;
 
    int curr = 0; arr[arr.size() - 1] = 1;
    for (size_t i = 2; i <= f; ++i)
    {
        for (size_t j = 0; j < arr.size(); ++j)
        {
            arr[arr.size() - j - 1] = (arr[arr.size() - j - 1] * i) + curr;
            curr = arr[arr.size() - j - 1] / 1000;
            arr[arr.size() - j - 1] = arr[arr.size() - j - 1] % 1000;
        }
        
    }
 
    arr.erase(arr.begin(),find_if(arr.begin(),arr.end(),[](int a)
            {
                return a != 0;
            }));
 
    for (auto& i : arr) { cout << i; }
    cout << endl;
    long long mul(1);
    for (size_t i = 2; i <= f; ++i)
    {
        mul *= i;
    }
    cout << mul << endl;
    return EXIT_SUCCESS;
}
Если так их нет, но не выгодно по памяти!
C++
1
2
3
4
5
6
7
8
9
10
11
int curr = 0; arr[arr.size() - 1] = 1;
    for (size_t i = 2; i <= f; ++i)
    {
        for (size_t j = 0; j < arr.size(); ++j)
        {
            arr[arr.size() - j - 1] = (arr[arr.size() - j - 1] * i) + curr;
            curr = arr[arr.size() - j - 1] / 10;
            arr[arr.size() - j - 1] = arr[arr.size() - j - 1] % 10;
        }
        
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2020, 22:41
Ответы с готовыми решениями:

Расхождение с версиями 8.2 и 8.3
На платформе 1С 8.2 (Документооборот) код работал исправно, как обновили платформу до 1С...

Расхождение многомерных массивов
Есть два многомерных массива: $arr1 = array ( 0 =&gt; array ('title' =&gt; 'Автослесарь'), 1 =&gt;...

Откуда расхождение в графиках
Нужно построить графики для функции и ее разложения Функция:...

Расхождение шаблона в Chrome
http://ma-excel.ru/ Во всех браузерах - нормальное отображение. Но в хроме расплывается...

5
TheCalligrapher
22.06.2020, 22:48
  #2

Не по теме:

Цитата Сообщение от VLaDoS_2001a Посмотреть сообщение
Расхождение на 12!
Цитата Сообщение от VLaDoS_2001a Посмотреть сообщение
Как использовать два и более в одной ячейки вектора?
- Петька, приборы!
- 300!
- Чего "300"?
- А чего "приборы"?

0
440 / 283 / 183
Регистрация: 23.06.2018
Сообщений: 651
23.06.2020, 05:59 3

Не по теме:

Описание и вправду непонятное, я понял проблему только потому, что видел тему про длинную арифметику.


Нет там никакого расхождения, просто cout << i; не выводит ведущие нули.
C++
1
2
3
4
cout << arr[0] << setfill('0');
for (int i = 1; i < arr.size(); i++)
    cout << setw(3) << arr[i];
cout << setfill(' ') << endl;
Ну либо printf("%03d", arr[i]) и никакого iomanip, если не побрезгуете.

По поводу выгоды по памяти: множно хранить в векторе только short, проводя умножение в curr. И даже тогда можно хранить целых 4 знака на элемент.
1
319 / 216 / 114
Регистрация: 14.05.2020
Сообщений: 890
23.06.2020, 16:30  [ТС] 4
Bleach163,теперь перебор
Миниатюры
Расхождение на 12!  
0
440 / 283 / 183
Регистрация: 23.06.2018
Сообщений: 651
23.06.2020, 17:38 5
Лучший ответ Сообщение было отмечено VLaDoS_2001a как решение

Решение

Скорее всего вы использовали мой вывод, но не изменили эту часть кода и там всё ещё 10.
Цитата Сообщение от VLaDoS_2001a Посмотреть сообщение
arr[arr.size() - j - 1] = (arr[arr.size() - j - 1] * i) + curr;
curr = arr[arr.size() - j - 1] / 10;
arr[arr.size() - j - 1] = arr[arr.size() - j - 1] % 10;
1
319 / 216 / 114
Регистрация: 14.05.2020
Сообщений: 890
23.06.2020, 17:42  [ТС] 6
Bleach163, del
0
23.06.2020, 17:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2020, 17:42
Помогаю со студенческими работами здесь

Исправить расхождение веток
После череды многократных изменений существующих коммитов с применением git rebase -i возникла...

Расхождение результатов в GUI
Добрый день. Проблема в следующем, при создании проги в GUI тот же самый код при обычном...

Драйвер ФР не загружен и Расхождение ИБ и ленты ФР
Здравствуйте. В нескольких торговых точках стоят фискальные регистраторы ШТРИХ-М. И часто на...

Большое расхождение с учебной литературой
Добрый день. Изучаю Thread и все что с ними связано. В мануалах по приоритетам потоков есть пример...

Расхождение между базой до и после
Уважаемые участники форума подскажите начинающему кодеру. Есть база данных в которую добавляются...

Расхождение показов рекламы и просмотров
У всех так происходит? У меня тут спор возник с одним человеком. Допустим, 45 000 просмотров...


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

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

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