#include <stdio.h>
#define LEN 100
void sum(int *buff1, int len1, int *buff2, int len2, int *result, int *result_length);
void sub(int *buff1, int len1, int *buff2, int len2, int *result, int *result_length);
/*
Беззнаковая целочисленная длинная арифметика
с использованием массивов.
Ввод:
* 2 длинных числа в виде массивов до 100 элементов
* В один элемент массива нельзя вводить число > 9
Вывод:
* Результат сложения и разности чисел-массивов
*/
int main() {
int num1[LEN], num2[LEN], sum_result[LEN + 1], sub_result[LEN];
int len1, len2, sum_length, sub_length;
// Ввод первого числа
len1 = 0;
while (len1
< LEN
&& scanf("%1d", &num1
[len1
]) == 1) { len1++;
}
// Ввод второго числа
len2 = 0;
while (len2
< LEN
&& scanf("%1d", &num2
[len2
]) == 1) { len2++;
}
// Сложение
sum(num1, len1, num2, len2, sum_result, &sum_length);
for (int i = 0; i < sum_length; i++) {
}
// Вычитание
sub(num1, len1, num2, len2, sub_result, &sub_length);
if (sub_length == -1) {
} else {
for (int i = 0; i < sub_length; i++) {
}
}
return 0;
}
void sum(int *buff1, int len1, int *buff2, int len2, int *result, int *result_length) {
// ... реализация сложения ...
}
void sub(int *buff1, int len1, int *buff2, int len2, int *result, int *result_length) {
// ... реализация вычитания ...
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIExFTiAxMDAKCnZvaWQgc3VtKGludCAqYnVmZjEsIGludCBsZW4xLCBpbnQgKmJ1ZmYyLCBpbnQgbGVuMiwgaW50ICpyZXN1bHQsIGludCAqcmVzdWx0X2xlbmd0aCk7CnZvaWQgc3ViKGludCAqYnVmZjEsIGludCBsZW4xLCBpbnQgKmJ1ZmYyLCBpbnQgbGVuMiwgaW50ICpyZXN1bHQsIGludCAqcmVzdWx0X2xlbmd0aCk7CgovKgrQkdC10LfQt9C90LDQutC+0LLQsNGPINGG0LXQu9C+0YfQuNGB0LvQtdC90L3QsNGPINC00LvQuNC90L3QsNGPINCw0YDQuNGE0LzQtdGC0LjQutCwCtGBINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10Lwg0LzQsNGB0YHQuNCy0L7Qsi4K0JLQstC+0LQ6CiogMiDQtNC70LjQvdC90YvRhSDRh9C40YHQu9CwINCyINCy0LjQtNC1INC80LDRgdGB0LjQstC+0LIg0LTQviAxMDAg0Y3Qu9C10LzQtdC90YLQvtCyCiog0JIg0L7QtNC40L0g0Y3Qu9C10LzQtdC90YIg0LzQsNGB0YHQuNCy0LAg0L3QtdC70YzQt9GPINCy0LLQvtC00LjRgtGMINGH0LjRgdC70L4gPiA5CtCS0YvQstC+0LQ6Ciog0KDQtdC30YPQu9GM0YLQsNGCINGB0LvQvtC20LXQvdC40Y8g0Lgg0YDQsNC30L3QvtGB0YLQuCDRh9C40YHQtdC7LdC80LDRgdGB0LjQstC+0LIKKi8KaW50IG1haW4oKSB7CiAgICBpbnQgbnVtMVtMRU5dLCBudW0yW0xFTl0sIHN1bV9yZXN1bHRbTEVOICsgMV0sIHN1Yl9yZXN1bHRbTEVOXTsKICAgIGludCBsZW4xLCBsZW4yLCBzdW1fbGVuZ3RoLCBzdWJfbGVuZ3RoOwoKICAgIC8vINCS0LLQvtC0INC/0LXRgNCy0L7Qs9C+INGH0LjRgdC70LAKICAgIGxlbjEgPSAwOwogICAgd2hpbGUgKGxlbjEgPCBMRU4gJiYgc2NhbmYoIiUxZCIsICZudW0xW2xlbjFdKSA9PSAxKSB7CiAgICAgICAgbGVuMSsrOwogICAgfQoKICAgIC8vINCS0LLQvtC0INCy0YLQvtGA0L7Qs9C+INGH0LjRgdC70LAKICAgIGxlbjIgPSAwOwogICAgd2hpbGUgKGxlbjIgPCBMRU4gJiYgc2NhbmYoIiUxZCIsICZudW0yW2xlbjJdKSA9PSAxKSB7CiAgICAgICAgbGVuMisrOwogICAgfQoKICAgIC8vINCh0LvQvtC20LXQvdC40LUKICAgIHN1bShudW0xLCBsZW4xLCBudW0yLCBsZW4yLCBzdW1fcmVzdWx0LCAmc3VtX2xlbmd0aCk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHN1bV9sZW5ndGg7IGkrKykgewogICAgICAgIHByaW50ZigiJWQiLCBzdW1fcmVzdWx0W2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKCiAgICAvLyDQktGL0YfQuNGC0LDQvdC40LUKICAgIHN1YihudW0xLCBsZW4xLCBudW0yLCBsZW4yLCBzdWJfcmVzdWx0LCAmc3ViX2xlbmd0aCk7CiAgICBpZiAoc3ViX2xlbmd0aCA9PSAtMSkgewogICAgICAgIHByaW50Zigibi9hXG4iKTsKICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdWJfbGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgcHJpbnRmKCIlZCIsIHN1Yl9yZXN1bHRbaV0pOwogICAgICAgIH0KICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgc3VtKGludCAqYnVmZjEsIGludCBsZW4xLCBpbnQgKmJ1ZmYyLCBpbnQgbGVuMiwgaW50ICpyZXN1bHQsIGludCAqcmVzdWx0X2xlbmd0aCkgewogICAgLy8gLi4uINGA0LXQsNC70LjQt9Cw0YbQuNGPINGB0LvQvtC20LXQvdC40Y8gLi4uCn0KCnZvaWQgc3ViKGludCAqYnVmZjEsIGludCBsZW4xLCBpbnQgKmJ1ZmYyLCBpbnQgbGVuMiwgaW50ICpyZXN1bHQsIGludCAqcmVzdWx0X2xlbmd0aCkgewogICAgLy8gLi4uINGA0LXQsNC70LjQt9Cw0YbQuNGPINCy0YvRh9C40YLQsNC90LjRjyAuLi4KfQo=