Надо вводить число в виде строки. В массиве а будем хранить первое число а в массиве b будем хранить второе число. В a[0] элемент будем хранить длину первой строки а в массиве b[0] вторую строку. Будем хранить в массиве a цифры этого числа таким образом: В первом элементе будем хранить последнюю цифру числа, во втором предпоследнюю цифру и т.д. Аналогично будем делать и для массива b. При вычитании длинных чисел удобно вычитать из наибольшего наименьшее, поэтому предварительно нужно их сравнить и в случае необходимости поменять местами. Так как A-B=-(B-A), то в случае когда A < B можно вывести знак "-", а затем положительное значение (B-A). При вычитании будем выполнять поразрядное вычитание с использованием переменной c для хранения значения переноса. Результат операции можно сохранять в массиве a, т.к. ранее используемые разряды фактически не имеют значения для дальнейшего процесса вычисления. Здесь при сравнении можете посмотреть разбор задачи В Сравнение. Сначала с=0. Циклом for мы пробегаем с 1 до a[0] с счетчиком i. Внутри цикла мы будем вычитать каждую цифру числа а и b. И будем хранить в переменную c=c+a[i]-b[i]+10;. Вы задаете вопрос почему +10 потому, что может быть так что a[i] < b[i] и для страховки я прибавил 10. В элемент a[i] будем хранить остаток от деления с на 10. Потому что a-b будет храниться в a. Теперь If-ом будем проверять если с <10 то с=-1 иначе с=0. Потом циклом while будем проверять (пока a[a[0]]=0 and a[0] >1 то a[0]=a[0]-1;). Потом массив a выводим в обратном порядке.
Напишите программу, вычисляющую разность двух целых неотрицательных чисел. Гарантируется, что первое число не меньше второго.
Входные данные
Даны два числа, второе из них не превышает первого. Числа не превышают 10100