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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.90
kzht91
0 / 0 / 0
Регистрация: 02.07.2010
Сообщений: 19
#1

Перевод числа в массив - C++

16.07.2010, 18:59. Просмотров 6067. Ответов 10
Метки нет (Все метки)

Здравствуйте. У такой меня вопрос: могу ли я перевести n-значное число в массив из n элементов. Например 123 = {1, 2, 3}???
Мне нужно для решения задачи по длинной арифметике на срр.
Или может лучше считать число каким-либо другим способом, чтобы потом поразрядно складывать с другим?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2010, 18:59     Перевод числа в массив
Посмотрите здесь:

Перевод числа в массив. - C++
В программе есть функция, которая принимает на вход целое число и символьный массив(строку). Нужно сделать так, чтобы она превратила число...

перевод из числа в прописной вид не массив - C++
Здравствуйте товарищи!Нужна ваша помощь в исправлении кода. Что нужно мне изменить в коде что бы при вводе числа например 1234.34...

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

Бинарные числа! Перевод простого числа в бираное и расчет. - C++
Здравствуйте!Я понимаю, что моя просьба банальна, но я правда не могу никак разобраться с бинарными числами и переводом простых чисел в...

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

перевод числа - C++
подскажите как перевести в 10ую систему число которое записано в двух ячейках массива : a=10; a=99 , причем число 9910 в 16 системе

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.07.2010, 19:25     Перевод числа в массив #2
Можно записать в char str[]. Функцией itoa(int val,char*buf, 10) //Вроде такой прототип.
Затем вычесть у каждого элемента строки '0'.
И записать это в int A[]. Может поможет

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstring>
int main()
{
    char Str[255];
    int Arr[255], Val=0;
    Val=345;
    itoa(Val, Str, 10);
    for(int i=0;i<strlen(Str);i++)
    {
        Str[i]=Str[i]-'0';
        Arr[i]=Str[i];
        std::cout<<"Arr: "<< Arr[i] <<'\n';
    }
    return 0;
}
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
16.07.2010, 20:25     Перевод числа в массив #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int n=0;
int temp;
while (x>0)
{
     mas[n]= x%10;
     x= x/10;
     n++;   
}
 
for (int i=0; i<=n/2; i++)
{
      temp= mas[i];
      mas[i]= mas[n-i-1];
      mas[n-i-1]= temp;
}
kzht91
0 / 0 / 0
Регистрация: 02.07.2010
Сообщений: 19
16.07.2010, 20:25  [ТС]     Перевод числа в массив #4
Все работает, но когда число большое например 16854684351461, он выводит 0...Почему???
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.07.2010, 20:33     Перевод числа в массив #5
А не слишком ли большое число для int
kzht91
0 / 0 / 0
Регистрация: 02.07.2010
Сообщений: 19
16.07.2010, 20:36  [ТС]     Перевод числа в массив #6
В том то и дело... Мне надо вводить цифры от 0 до 10^100. Потом поразрядно складывать с таким же большим числом. Ну длинная арифметика. Я делал как то сумму массивов. получилось, теперь просто числа даны большие, не могу придумать
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
16.07.2010, 20:52     Перевод числа в массив #7
kzht91, сразу считывай в массив да и все
вот как считать с файла
C
1
2
3
4
char str[1000];
fscanf(f, "%s", str);
for(i=0; i<strlen(str); i++)
mas[i]= str[i]-'0';
kzht91
0 / 0 / 0
Регистрация: 02.07.2010
Сообщений: 19
17.07.2010, 01:46  [ТС]     Перевод числа в массив #8
Во спасибо!)))) Заработало!)))

Добавлено через 4 часа 47 минут
Блин весь мучался, никак не могу написать код, уже сообразил вроде, но какие то ошибки выходят. Помогите написать эту программу. Это A+B, где А и В не превышают 10^100. Буду признателен.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
17.07.2010, 03:13     Перевод числа в массив #9
Можешь использовать long long тип. Или скачать библиотеку для длинных чисел
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
17.07.2010, 07:55     Перевод числа в массив #10
kzht91, где хранится длина массива?
ии для таких целей лучше хранить число задом наперед
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2010, 17:39     Перевод числа в массив
Еще ссылки по теме:

Перевод 10-го числа в 2-ое - C++
Народ обьясните пжлста как работает эта функция(быстрое возведение числа в степень a^d mod n) : long powmod(long a, long d, long n) ...

Перевод числа в строку - C++
Подскажите пожалуйста: 1) Каким образом переводится число в строку 2) Как записывается число начиная с последнего символа(задом на...

Перевод числа в текст - C++
Как перевести число в текст, к примеру: ввод «-12.11» должен приводить к выводу «минус двенадцать целых одиннадцать сотых»

Перевод числа в цифры! - C++
Допустим есть числа 4 8256 345346 342345 432004523 Как получить сумму цифр, этих чисел? и закинуть их в массив.

Перевод числа в строку - C++
составить строковую функцию num_to_str(n) где n целое число ( |n|&lt;1000). возвращаемое значение должно быть строкой в которой число n...


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

Или воспользуйтесь поиском по форуму:
kzht91
0 / 0 / 0
Регистрация: 02.07.2010
Сообщений: 19
17.07.2010, 17:39  [ТС]     Перевод числа в массив #11
Ну для того чтобы складывать поразрядно и начинать с единиц, т.е. с конца массива

Добавлено через 1 час 22 минуты
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
#include <iostream>                     
#include <string.h>
#include <math.h>
using namespace std;
 
int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    char sa[102] = {0}, sb[102] = {0};
    int i, ma[102], mb[102], r[102] = {0}, str;
    cin >> sa >> sb;
    if(strlen(sa) > strlen(sb)) str = strlen(sa);
    else str = strlen(sb); 
 
    for(i=0; i<str; i++) ma[i] = sa[i] - '0';
    for(i=0; i<str; i++) mb[i] = sb[i] - '0';
 
    for(i=0; i<str; i++) cout << sa[i];
    cout << endl;
    for(i=0; i<str; i++) cout << sb[i];
    cout << endl;
 
    for(i=str-1; i>=0; i--) {
        r[i] = ma[i] + mb[i];
        if(r[i] > 9) {
            r[i] = r[i]%10;
            r[i-1]++;
        }   
    }
    for(i=0; i<str; i++) { 
        cout << r[i];
    }
}
Объясните в чем ошибка. Это сумма чисел, но почему то не пашет
Yandex
Объявления
17.07.2010, 17:39     Перевод числа в массив
Ответ Создать тему
Опции темы

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