Этот вопрос закрыт для ответов, так как повторяет вопрос (Выводит 0 в начале ответа) Как исправить код?
@Nazarko03

Как убрать нули из ответа?

Реализовал алгоритм Карацубы: умножение двух больших чисел. Результат выводит из нулями. как исправить?

#include <iostream>
 
using namespace std;
int main()
{
    int numb;
    cin >> numb;
    int mas[5];
    int kilkmas = 0;
    for(int i=0;i<5;i++)
    {
        int ostdiv = numb % 2;
        if (ostdiv == 0)
            mas[kilkmas] = 0;
        else
            mas[kilkmas] = 1;
        kilkmas++;
        numb = numb / 2;
    }
    for (int i = 4; i >= 0; i--)
    {
        cout << mas[i];
    }
}
  • Вопрос задан
  • 423 просмотра
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Вы выводите всегда 2N цифр. Даже если в ответе их меньше.

Надо циклом найти в массиве самую последнюю не нулевую цифру и выводить с нее.

Еще, похоже, ваша реализация картсубы работает только если длина чисел - степень двойки. Надо N делать не 20, а, допустим, 32 (на самом деле надо смотреть на длины входных чисел и брать минимальную степень двойки покрывающую их).
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы