• В числах Армстронга та Щасливих переробити функції на процедури. Дам 80 балів. Число Армстронга — натуральне число, яке дорівнює сумі своїх цифр, піднесених до степеня, що дорівнює кількості його цифр. Іноді щоб вважати число таким, достатньо, щоб степені, до яких підносяться цифри, були рівні m — тоді число можна назвати m-самозакоханим. Наприклад: 1³ + 5³ + 3³ = 153 або 407=4 3 +0 3 +7 3 , де m = 3 (розрядність числа). Щасливими будемо називати числа, у яких парна розрядність і сума цифр лівої половинки числа дорівнює сумі цифр правої половинки числа. Наприклад: 382571 3+8+2=13 5+7+1=13 Задачі: {числа Армстронга 153,370… } VAR n,i:longint; Function Roz(a:longint):byte; VAR k:byte; BEGIN k:=0; While a>0 do BEGIN a:=a div 10; k:=k+1; END; Roz:=k; END; Function St(v,m:byte):longint; VAR y:longint; j:byte; BEGIN y:=1; For j:=1 to m do y:=y*v; St:=y; END; Function Arm(x:longint):boolean; VAR k,c:byte; s,b:longint; BEGIN Arm:=false; k:=Roz(x); b:=x; s:=0; while b>0 do BEGIN c:=b mod 10; s:=s + st(c,k); b:=b div 10; END; If s=x then Arm:=true; END; BEGIN Writeln('Vvedite Chislo'); Readln(n); For i:=10 to n do If Arm(i) then Write(i,', '); Readln END. { Щасливі числа 22…1102…1120…} VAR n,i:longint; Function Roz(a:longint):byte; VAR k:byte; BEGIN k:=0; While a>0 do BEGIN a:=a div 10; k:=k+1; END; Roz:=k; END; Function St10(m:byte):longint; VAR y:longint; j:byte; BEGIN y:=1; For j:=1 to m do y:=y*10; St10:=y; END; Function Sum(a:longint):byte; VAR S:byte; BEGIN S:=0; While a>0 do BEGIN S:=S+a mod 10; a:=a div 10; END; Sum:=S; END; Function Lucky(x:longint):boolean; VAR k:byte; d,xl,xr:longint; BEGIN Lucky:=false; k:=Roz(x); If k mod 2=0 then BEGIN d:=St10(k div 2); xl:=x div d; xr:=x mod d; If Sum(xl)=Sum(xr) then Lucky:=true; END; END; BEGIN Writeln('Vvedite Chislo'); Readln(n); For i:=10 to n do If Lucky(i) then Write(i,', '); Readln END.

Ответы 1

  • Ответ:

    Ось приклад програми на Pascal, яка знаходить всі числа Армстронга з трьох цифр:

    program ArmstrongNumbers;

    var

     i, j, k, n, sum: integer;

    begin

     writeln('Armstrong numbers with 3 digits:');

     for i:=1 to 9 do

     begin

        for j:=0 to 9 do

        begin

           for k:=0 to 9 do

           begin

              n:= i*100 + j*10 + k;

              sum:= round(power(i,3) + power(j,3) + power(k,3));

              if sum = n then

              begin

                 writeln(n);

              end;

           end;

        end;

     end;

    end.

    Опис програми:

    Змінні i, j, k використовуються для перебору всіх можливих комбінацій трьох цифр.

    Змінна n містить значення числа, яке перевіряється на те, чи є воно числом Армстронга.

    Змінна sum містить суму цифр, піднесених до 3-го степеня.

    Функція power використовується для піднесення цифр до потрібного степеня.

    Якщо значення змінної sum дорівнює значенню змінної n, то число n виводиться на екран.

    Ця програма виведе на екран всі числа Армстронга з трьох цифр, які будуть відображені під час виконання програми. Можна змінити програму, щоб вона шукала числа Армстронга з будь-якою кількістю цифр, змінивши лічильники циклів та перевірку на кількість цифр у числі n.

    Объяснение:

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years