Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int mant_diff(char *const mant1, const char *const mant2)
- {
- if (!mant_more_eq(mant1, mant2))
- { // невозможно сделать вычитание, так как второе число больше
- return NO;
- }
- for (int i = strlen(mant2) - 1; i >= 0; i--) // классическая процедура вычитания в столбик
- {
- if (mant1[i] - mant2[i] >= 0)
- { // если меньшему разряду не нужно занимать из более высокого разряда десятку
- mant1[i] -= mant2[i];
- }
- else
- {
- int j = i - 1; // ищем, у кого занять
- while (mant1[j] == 0)
- {
- j--;
- }
- mant1[j]--;
- j++;
- for (; j < i; j++)
- { //обновляем разряды
- mant1[j] += 9;
- }
- mant1[i] += 10 - mant2[i]; // делаем вычитание в разряде-заемщике
- }
- }
- return YES;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement