Program go; var x,y,z,n:real; begin write('Введите сегодняшнее число: '); readln(x); write('Введите номер сегодняшнего месяца: '); readln(y); begin if y=1 then n:=365-x else; if y=2 then n:=365-31-x else; if y=3 then n:=365-31-28-x else; if y=4 then n:=365-31-28-31-x else; if y=5 then n:=365-31-28-31-30-x else; if y=6 then n:=365-31-28-31-30-31-x else; if y=7 then n:=365-31-28-31-30-31-30-x else; if y=8 then n:=365-31-28-31-30-31-30-31-x else; if y=9 then n:=365-31-28-31-30-31-30-31-31-x else; if y=10 then n:=365-31-28-31-30-31-30-31-31-30-x else; if y=11 then n:=365-31-28-31-30-31-30-31-31-30-31-x else; if y=12 then n:=365-31-28-31-30-31-30-31-31-30-31-30-x else; end; writeln ('До Нового года осталось: ',n); end.
Используем достаточно хорошо известный "индийский алгоритм" возведения в степень. Я не буду здесь его приводить из-за достаточно большого объема сопровождающих рассуждений; все легко находится в Интернет по фразе "индийский алгоритм возведения в степень".
function Power(x: double; n: integer): double; var p: double; flag: boolean; begin p := 1; flag := true; while flag do begin if odd(n) then p := p * x; n := n div 2; if n > 0 then x := x * x else flag := false end; power := p end;
var x: double; n: integer;
begin Writeln('Введите число и натуральную степень, в которую его надо возвести'); Readln(x, n); Writeln('Результат: ', Power(x, n)) end.
Тестовое решение: Введите число и натуральную степень, в которую его надо возвести 3.6 11 Результат: 1316217.03842267
Точный результат равен 1316217.03842267136.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку