Условные операторы: определить k-ую цифру в последовательности, в которой выписаны подряд степени 10 - C (СИ)

Формулировка задачи:

Дано натуральное к. Определить к-ую цифру в последовательности 1101001000... в которой выпмсаны подряд степени 10.

Код к задаче: «Условные операторы: определить k-ую цифру в последовательности, в которой выписаны подряд степени 10 - C (СИ)»

textual
#include "stdio.h"
 
int digit(int k)
{
    int i;
    for( i = 1; k > 0; ++i ) {
        k -= i;
    }
    return k == 0;
}
 
int main(void)
{
    const char* digits[] = {
        "zero",
        "one"
    };
 
    int k;
 
    while( 1 ) {
        printf("Enter number: ");
        scanf("%d", &k);
        if( k < 0 ) { break; }
        k = digit(k);
        printf("Digit: %s\n", digits[k]);
    }
 
    return 0;
}

5   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ