Выбрать тройки идущих подряд цифр числа, сумма которых максимальная - C (СИ)
Формулировка задачи:
Составить программу на языке Си в целом типе данных, которая для любых допустимых и корректно записанных чисел этого типа в десятичном изображении, поступающих на стандартный ввод программы, выполняет указанное вариантом действие над их значениями. Нумерация цифр в записи числа ведется справа налево, от младших разрядов к старшим, начиная с нуля. Результатом действия над введенным числом является целое или булевское значение в зависимости от конкретного варианта, направляемое в стандартный вывод. Предусмотрите корректную обработку пустого файла.
Выбрать тройки идущих подряд цифр числа, сумма которых максимальная. < 1234567 0 > 567
Решение задачи: «Выбрать тройки идущих подряд цифр числа, сумма которых максимальная»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int c3max(int n, int m, int p) { int q0,q1,q2,r3,s3,nn; if (n==0) return p; q0 = n % 10; q1 = (n /10) % 10; q2 = (n / 100) % 10; s3 = q0+q1+q2; r3 = (q2*10+q1)*10+q0; nn = n /10; if (s3 > m) return c3max(nn,s3,r3); else return c3max(nn,m,p); } int main(int argc, char *argv[]) { int n; printf("n="); scanf("%d",&n); printf("%d\n",c3max(n,0,0)); system("PAUSE"); return 0; }
Объяснение кода листинга программы
Код представлен на языке C и состоит из двух функций:
c3max
, которая принимает три аргумента типаint
:n
,m
,p
. Первый аргументn
представляет собой число, для которого нужно найти тройку цифр с максимальной суммой. Второй и третий аргументыm
иp
представляют собой текущую максимальную сумму и текущее максимальное значение функции соответственно. Внутри функции используется цикл, который проверяет все тройки идущих подряд цифр числаn
. Если сумма этих цифр больше текущей максимальной суммы, то обновляется текущая максимальная сумма и текущее максимальное значение функции. В конце функция возвращает текущее максимальное значение функции.main
- это точка входа в программу. Она считывает число с помощью функцииscanf
и передает его в функциюc3max
вместе со значениями 0 и 0. Первое значение представляет собой текущую максимальную сумму, а второе - текущее максимальное значение функции. Результат работы функцииc3max
выводится на экран с помощью функцииprintf
. После этого программа ожидает нажатия клавиши с помощью функцииsystem
, чтобы пользователь мог увидеть результат, а затем возвращает 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д