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

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

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

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

14.06.2014, 13:22. Просмотров 664. Ответов 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 минут
Совсем никто не знает?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 13:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Длинная арифметика (C++):

Длинная арифметика - C++
Ребята,объясните как решить задачу , напишите хоть часть кода. Пусть даны числа a , b . Найти a+b, если a и b не больше чем 10 в...

Длинная арифметика - C++
:senor: Здраствуйте, пишу модуль длинной математики. В принципе, работоспособность у него положительная. Но в силу моей неопытности меня...

Длинная арифметика - C++
Вот условие задачи: Во время исследований, посвященных появлению жизни на планете Олимпия, учеными было сделано несколько сенсационных...

Длинная арифметика - C++
Здравствуйте помогите пожалуйста с задачкой на с++ борландс :wall: 1. &quot;Вычислить точное значение (n!)! &quot; 2. &quot;Для заданной...

Длинная арифметика - C++
Всем доброго вечера. Нужна помощь в решении задачи. Составить программу для вычисления числа: 2^64-1. В результате сохранить все...

Длинная арифметика N+1 - C++
Помогите плиз. Вводится n. Вывести N+1. Ограничений нет. Я понимаю что надо ввести массив и читать каждый символ. Оставшиеся елементы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kasadi
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 65
17.06.2014, 21:55  [ТС] #2
Совсем никто? Мда, я ожидал большего от киберфорума
0
SlavaSSU
215 / 160 / 45
Регистрация: 17.07.2012
Сообщений: 587
17.06.2014, 22:10 #3
по идее твоя программа должна падать с вердиктом runtime error. так ли это?
0
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
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]; }
0
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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 22:20
Привет! Вот еще темы с ответами:

Длинная арифметика. - C++
Даны два длинных числа a и b. Найти частное и остаток при делении числа a на b. Не могу реализовать деление отрицательных чисел. Помогите...

Длинная арифметика - C++
Поодскажите какую-нибудь библиотеку, где реализована работа со знаковыми целыми числами произвольной длины.

Длинная арифметика - C++
Срочно нужны исходники (функции): 1. Перевод обычного числа в длинное (массив, строка , вектор кто с чем работает) 2. Нахождение суммы...

Длинная арифметика С++ - C++
требуется написать задачу для подсчета суммы s=1^2+2^2+3^2+...+n^2 n&gt;=20000


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.06.2014, 22:20
Ответ Создать тему
Опции темы

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