Условные операторы: определить k-ую цифру в последовательности, в которой выписаны подряд степени 10 - C (СИ)
Формулировка задачи:
Дано натуральное к. Определить к-ую цифру в последовательности 1101001000... в которой выпмсаны подряд степени 10.
Решение задачи: «Условные операторы: определить k-ую цифру в последовательности, в которой выписаны подряд степени 10»
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; }
Объяснение кода листинга программы
- Подключаем стандартную библиотеку ввода-вывода
- Создаем функцию digit(int k), которая принимает целочисленный аргумент k
- В функции используется цикл for для вычисления k-ой цифры в последовательности, в которой выписаны подряд степени 10
- Внутри цикла вычитаем из k текущую степень 10, пока k не станет равным нулю
- Возвращаем значение k, равное нулю, когда цикл закончится
- В функции main() создаем массив строк digits[] со значениями
zero
иone
- Запрашиваем у пользователя ввод целого числа и сохраняем его в переменной k
- Если k меньше нуля, то выходим из программы с помощью оператора break
- Вызываем функцию digit(k) и присваиваем результат переменной k
- Выводим на экран строку
Digit: %s\n
, где %s - это заменяемое место, на которое помещается значение переменной k - Повторяем шаги 7-10 до тех пор, пока пользователь не введет число меньше нуля
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д