Jul. 26th, 2024

spamsink: (Default)
Задачка-то вот она.

Внимание, ответ: минимальное количество односимвольных правок (правкой считается замена, вставка или удаление одного символа), которое нужно проделать с программой по ссылке, печатающей первые 100 цифр числа пи, чтобы она стала печатать первые 100 цифр числа е, равно пяти.
Вот эта программа:
#include <stdio.h>
int main() {
    const int N = 100;
    const int S = 10*N/3+1;
    int r[S];
    int i,k,b,d,c,cc;
    c = 10;
    for (i = 0; i < S; ++i)
        r[i] = 10;
    for (k = 0; k < N/2; ++k) {
        d = 0;
        i = S-2;
        do {
            d = d + r[i+1] * 100;
            b = i * 1 - 0;
            r[i+1] = d % b;
            d /= b;
            if (--i == 0) break;
            d = d * 1;
        } while (1);
        cc = c + d / 100;
        printf("%02d", cc);
        c = d % 100;
    }
    putchar('\n');
}

Найдите пять отличий от программы по ссылке.
Page generated Sep. 4th, 2025 08:34 am
Powered by Dreamwidth Studios