Не понимаю, в чем ошибка, ведь значение вычисляется правильно, иногда даже выводиться в консоль, но с вводом первого числа ,как 1, а второго как 10000000000000... выдает ошибку
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
string digit1, digit2, answer;
cout << "Введите уменьшаемое число:" << endl;
cin >> digit1;
cout << "Введите вычитаемое число:" << endl;
cin >> digit2;
long m = digit1.size();
long n = digit2.size();
long* a = new long[m];
long* b = new long[m];
int len, len1, x;
if (m < n) {
for (int i = 0; i < n; i++) {
*(a + i) = (long)digit2[i] - '0';
}
for (int i = 0; i < m; i++) {
*(b + i) = (long)digit1[i] - '0';
}
cout << endl;
}
else
{
for (int i = 0; i < m; i++) {
*(a + i) = (long)digit1[i] - '0';
}
for (int i = 0; i < n; i++) {
*(b + i) = (long)digit2[i] - '0';
}
cout << endl;
}
if (m < n) {
len = m;
len1 = n;
}
else {
len = n;
len1 = m;
}
long* c = new long[len1];
for (int i = 0; i < len1; i++) {
*(c + i) = 0;
}
for (int i = len - 1; i >= 0; i--) {
if (*(a + i + len1 - len) >= *(b + i)) {
x = *(a + i + len1 - len) - *(b + i);
*(c + i + len1 - len) = x;
}
else {
*(a + i + len1 - len - 1) -= 1;
if (*(a + i + len1 - len - 1) < 0) {
int k = 1;
while (*(a + i + len1 - len - k) <= 0) {
*(a + i + len1 - len - k) = 9;
k++;
}
*(a + i + len1 - len - k) -= 1;
}
*(a + i + len1 - len) += 10;
x = *(a + i + len1 - len) - *(b + i);
*(c + i + len1 - len) = x;
}
}
cout << endl;
for (int i = 0; i < len1 - len; i++) {
*(c + i) = *(a + i);
}
cout << "Полученная разность: " << endl;
if (m < n)
answer.push_back('-');
for (int i = 0; i < len1; i++) {
answer.append(to_string(c[i]));
}
while (answer[0] - 48 == 0) {
answer.erase(0, 1);
}
cout << answer;
cout << endl;
}
else
{
for (int i = 0; i < len1; i++) {
*(a + i) = (long)digit1[i] - '0';
}
for (int i = 0; i < len; i++) {
*(b + i) = (long)digit2[i] - '0';
}
cout << endl;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
вот код программы, из книги олимпиадное программированиеОн должен решать задачу о количестве способов разместить n ферзей на доске n*n чтобы...
Как можно заменить все boost::bind на лямбды в коде ниже??? Почему при попытке в функции accept заменить boost::bind на std::bind, компилятор выдает ошибку No matching...
Какого типа данных возвращаемое значение boost::bind? Я хочу сделать функцию, которая будет принимать в себя результат работы boost::bind, но я не знаю...