Обратим внимание, что при возведении натурального числа a в натуральную степень n последняя цифра результата определяется, как значение последней цифры d числа a, возведенного в степень n Поскольку операция возведения в степень n сводится к умножению n раз числа самого на себя, то получая при очередном умножении многоразрядное число, мы можем снова принимать в расчет только его младшую цифру. Это позволяет построить цикл на n умножений, каждый раз получая младшую цифру при операции mod.
var a:longint; n,d,i,p:integer; begin Write('Введите натуральное число a: '); Read(a); Write('Введите натуральную степень n: '); Read(n); a:=a mod 10; p:=a; for i:=2 to n do begin a:=a*p; a:=a mod 10 end; Writeln('Последняя цифра равна ',a) end.
Тестовое решение: Введите натуральное число a: 154 Введите натуральную степень n: 9 Последняя цифра равна 4
Екатерина1369
26.07.2020
//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками". var a, b, c: array [1..100] of longint; i, min, n, j, t: longint;
begin //Читаем количество элементов в нашем массиве. readln(n);
//Читаем массив. for i := 1 to n do read(a[i]);
//Заполняем первую "половинку". for i := 1 to n div 2 do b[i] := a[i];
//Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце. for i := n div 2 + 1 to n do c[i - n div 2] := a[i];
//Теперь отсортируем первую "половинку" методом выбора. Идея этого метода //основывается на том, что мы ищем минимальный среди неотсортированных элемент, //а затем просто swap-аем его с тем, который стоит сразу после отсортированных. for i := 1 to (n - 1) div 2 do begin min := i; for j := i + 1 to n div 2 do if b[min] > b[j] then min := j; if min <> i then begin t := b[i]; b[i] := b[min]; b[min] := t; end; end;
//Затем вторую точно также, только стоит обратить внимание на сравнения. //Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом //будет другим. for i := 1 to (n - 1) div 2 do begin min := i; for j := i + 1 to n div 2 do if c[min] < c[j] then min := j; if min <> i then begin t := c[i]; c[i] := c[min]; c[min] := t; end; end;
//А теперь просто по очереди выводим готовые "половинки", не забывая ставить //пробел после вывода каждого элемента. for i := 1 to n div 2 do write(b[i], ' '); for i := 1 to n - n div 2 do write(c[i], ' '); end.
Belov
26.07.2020
Немного теории в приложении, чтоб не надо было обьяснять ответы
1. В зависимости от изображения чисел системы счисления делятся на: б. Арабские и римские;
2. Двоичная система счисления имеет основание: б. 2;
3. Для представления чисел в шестнадцатеричной системе счисления используются: с. цифры 0-9 и буквы A-F.
4. В какой системе счисления может быть записано число 402? с. в пятеричной Есть цифра 4 которой нет в 4ричной и менее
5. Чему равно число DXXVI в десятичной системе счисления? а. 526;
6. Запись вида 352: с. Отсутствует в двоичной системе счисления;
7. Какие цифры используются в шестеричной системе счисления? а. 0,1,2,5; От 0 до 5
8. какое минимальное основание должна иметь система счисления, если в ней можно записать числа: 401, 122, 232, 111; а. 5;
9. Какое число записано некорректно? с. 1212 в двоичной;
10. система счисления-это...? символический метод записи чисел
11. Что такое основание системы счисления? Некое положительное число 1 которое определяет шаг разрядности
12. Позиционной системой счисления называют... Система счисления где позиция имеет значение
13. Какое минимальное основание может иметь система счисления, если в ней записано число 235? 6
14. Запишите число 254 с римских цифр CCLIV
15. Чему равно число XCII в десятичной системе счисления? 92
16. Запишите значения цифр A и E в 16-ричной системе счисления:... А=10 Е=14
17. Переведите числа в десятичную систему счисления: а. 1011011 ( в 2-ой системой счисления) = 91 б. 3421( в 5-ой системе счисления) = 486
18. Выполните действия: а) 11011110(в 2-ой системе счисления) + 11010010(в 2-ой системе счисления); =110110000 в) 87АС(в 16-ричной системе счисления) - 2D6F(в 16-ричной системе счисления); = 5A3D б) 20119(в троичной системе счисления)- 1012(в троичной системе счисления); - тут опечатка г) 1101011 ( в двоичной системе счисления) * 1101 ( в двоичной системе счисления) = 10101101111
19. Переведите число 433 (в десятичной системе счисления) в двоичную, восьмеричную, шестнадцатеричную системы счисления: 110110001_2 661_8 1B1_16
20. вычислите сумму чисел 10(в 2-ой) + 10 (в 8-ой) + 10 (в 10-ой) + 10 (в 16-ой). Представить результат в двоичной системе счисления 2 + 8 + 10 + 16 = 26_10 = 1000110_2
21. В какой системе счисления будет верным равенство 4+4= 10 ?... 8
22. В какой системе счисления: а) 144(в 10-ой) записывается как 100; 144 = 12*12 значит основание 12 б) 98( в 10-ой) записывается как 200; 98 = 2*7*7 значит 7ричная в) 48(в 10-ой) записывается как 300. 48 = 3*4*4 значит 4ричная
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Составить алгоритм и программу, определяющую последнюю цифру числа a (в n степени) , где натуральные числа n, а вводятся. ответ на паскале
Поскольку операция возведения в степень n сводится к умножению n раз числа самого на себя, то получая при очередном умножении многоразрядное число, мы можем снова принимать в расчет только его младшую цифру.
Это позволяет построить цикл на n умножений, каждый раз получая младшую цифру при операции mod.
var
a:longint;
n,d,i,p:integer;
begin
Write('Введите натуральное число a: '); Read(a);
Write('Введите натуральную степень n: '); Read(n);
a:=a mod 10; p:=a;
for i:=2 to n do
begin a:=a*p; a:=a mod 10 end;
Writeln('Последняя цифра равна ',a)
end.
Тестовое решение:
Введите натуральное число a: 154
Введите натуральную степень n: 9
Последняя цифра равна 4