Вариант с небольшой автоматизацией
#include <cstdio>
using namespace std;
class Clock
{
int h, m, s;
int isPM(int hour) {
if ( (hour > 12) && (hour < 24) )
return 1;
else
return 0;
}
public:
Clock() : h(0), m(0), s(0) {}
void setTime(int ph, int pm, int ps) {
try {
if ( !( (ph < 0) || (ph > 23) ) )
h = ph;
else
throw "Неверный час";
if ( !( (pm < 0) || (pm > 59) ) )
m = pm;
else
throw "Неверные минуты";
if ( !( (ps < 0) || (ps > 59) ) )
s = ps;
else
throw "Неверные секунды";
} catch (const char* e) {
printf("Ошибка: %s", e);
}
}
Clock(int ph, int pm, int ps) {
setTime(ph, pm, ps);
}
int hour() { return h; }
int min() { return m; }
int sec() { return s; }
void print1() {
printf("%d часов %d минут %d секунд\n", h, m, s);
}
void print2() {
char a_p;
int ph;
if (isPM(h)) {
a_p = 'p';
ph = h - 12;
} else {
a_p = 'a';
ph = h;
}
printf("%d %c. m. %d минут %d секунд\n", ph, a_p, m, s);
}
};
/* Проверка некоторых функций */
int main()
{
Clock clock1(23, 11, 07), clock2;
clock1.print2();
clock2.print1();
return 0;
}
Var
n: int64;
function f(n: int64): int64;
begin
if(n > 0) then f := f(n div 10) + (n mod 10);
end;
begin
readln(n);
write(f(n));
end.
Ответ: 0
s = 0 => любое умножение на 0 равно 0
Может так если говорят 3 раза повторит может надо так 17+17+17 и умножит на 10