Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kasadi
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 65
#1

Длинная арифметика - C++

14.06.2014, 13:22. Просмотров 642. Ответов 4
Метки нет (Все метки)

Помогите реализовать длинную арифметику
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
int main(){
    int a[100000];
    string s;
    cin >> s;
    int h = s.length();
    for (int i = 0; i < s.length(); i++){
        a[i] = s[h]; h--;
    }
    if (a[0] != 9){ a[0] = a[0] + 1; }
    else { a[0] = 0; a[1] = a[1] + 1; }
    for (int j = 0; j < a[s.length()]; j++) {cout << a[j];}
    return 0;
 
}
p/s без использывания вектора или классов...

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
int main(){
    int a[100000];
    string s;
    cin >> s;
    int h = s.length();
    for (int i = 0; i < s.length(); i++){
        a[i] = s[h]; h--;
    }
    if (a[0] != 9){ a[0] = a[0] + 1; }
    else for (int p = 0; p < a[s.length()]; p++){
 
        if (a[p] == 9){
            a[p] == 0; a[p + 1] = a[p + 1] + 1;
        }
        else break;
    }
    for (int j = 0; j < a[s.length()]; j++) {cout << a[j];}
    return 0;
 
}
Слегка изменил, но все равно код не рабочий!

Добавлено через 5 минут
Заполнил оставшуюся часть нулями, не помогло. Как видите я стараюсь =\
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
#include <iostream>
#include <string>
using namespace std;
int main(){
    int a[100000];
    string s;
    cin >> s;
    int h = s.length();
    for (int i = 0; i < s.length(); i++){
        a[i] = s[h]; h--;
    }
    for (int t = s.length(); t < 100000; t++){
        a[t] = 0;
    }
    if (a[0] != 9){ a[0] = a[0] + 1; }
    else for (int p = 0; p < a[s.length()]; p++){
 
        if (a[p] == 9){
            a[p] == 0; a[p + 1] = a[p + 1] + 1;
        }
        else break;
    }
    for (int j = 0; j < a[s.length()]; j++) {cout << a[j];}
    return 0;
 
}
Добавлено через 1 минуту
Простите, забыл сказать что делает программа. Нам дано число n. нам надо вывести цифру n+1

Добавлено через 1 час 20 минут
Совсем никто не знает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 13:22     Длинная арифметика
Посмотрите здесь:

Длинная арифметика - C++
class BigInt { static const int max_size = 100000;//количество десятичных разрядов, которые должно вмещать static...

Длинная арифметика(деление на 11) - C++
Здравствуйте имеется задача , в которой надо проверить делиться ли число на 11 ввод: любое число не больше чем 101000 вывод : да или...

Длинная арифметика. Факториал - C++
Придумать алгоритм факториала, не сложно, для 1-14. Но дальше не знаю как сделать длинную арифметику для больших чисел. Подскажите...

Длинная арифметика. Задача А + В - C++
Прошу помочь решить эту задачку, желательно с закомментированными построчными объяснениями. Особенно про подключаемые файлы -инпут и...

Не работает длинная арифметика - C++
Не работает длинная арифметика сложение. #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;iomanip&gt; #include &lt;string&gt; #include...

Длинная целочисленная арифметика на c++ - C++
Я в курсе существования готовой длинной арифметики, но в этой, например, теме есть такие посты: , Здесь будет аналог той темы, но на c++....

Длинная арифметика. Сложение - C++
Есть класс BigInt со скрытыми переменными uint32* m_integer и uint32 m_length, которые отвечают за само число и его длину соответственно. Я...

Длинная арифметика, вектор - C++
Решил побаловаться в с++ и найти 45^51 Вот такой код#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;conio.h&gt; using namespace std; void...

сложение(длинная арифметика) - C++
Нашел небольшой кусочек кода в интернете: реализация сложения с помощью массивов. Решил это дело все потестировать и в итоге, как мне...

Длинная арифметика производных - C++
можете мне написать код на с++ или алгоритм? заранее спасибо


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kasadi
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 65
17.06.2014, 21:55  [ТС]     Длинная арифметика #2
Совсем никто? Мда, я ожидал большего от киберфорума
SlavaSSU
215 / 160 / 45
Регистрация: 17.07.2012
Сообщений: 587
17.06.2014, 22:10     Длинная арифметика #3
по идее твоя программа должна падать с вердиктом runtime error. так ли это?
nmcf
5124 / 4444 / 1482
Регистрация: 14.04.2014
Сообщений: 17,658
17.06.2014, 22:11     Длинная арифметика #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
int l = s.length();
int x = 1;
for(int p = 0; p < l; p++)
{
    x += a[p];
    if (x > 9)
    {
        a[p] = x - 10;
        x = 1;
    }
    else
    {
        a[p] = x;
        x = 0;
        break;
    }
}
if(x == 1)
{
    a[l] = 1;
    l++;
}
for(int i = l - 1; i >= 0; i++) { cout << a[i]; }
SlavaSSU
215 / 160 / 45
Регистрация: 17.07.2012
Сообщений: 587
17.06.2014, 22:20     Длинная арифметика #5
C++ (Qt)
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
#include <iostream>
#include <vector>
#include <string>
 
using namespace std;
 
int a[111111];
 
int main()
{
    string s;
    getline(cin, s);
    int n = s.length();
    for(int i = 0; i < n; i++)
        a[i] = (int)(s[i] - '0');
 
    int add = 1;
    for(int i = n - 1; i >= 0; i--)
    {
        int cur = a[i] + add;
        if(cur <= 9)
        {
            a[i] = cur;
            add = 0;
        }
        else
        {
            a[i] = 0;
            add = 1;
        }
    }
 
    if(add == 1)
        printf("1");
    for(int i = 0; i < n; i++)
        printf("%d", a[i]);
    printf("\n");
    return 0;
}
Yandex
Объявления
17.06.2014, 22:20     Длинная арифметика
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru