IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задачка, на математическую логику
starmaster
сообщение 12.01.2005 13:45
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Помогите, пожалуйста, решить вот такую задачу: Даны целые числа n и k. Найти младшую цифру числа n в степени k (число n в степени k может и не вмещаться в числовую переменную).

Сообщение отредактировано: starmaster - 12.01.2005 13:46
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
xds
сообщение 12.01.2005 14:04
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Код
program n_k;

var
 n, k, r: Integer;

begin
 Write('n>');
 Readln(n);
 Write('k>');
 Readln(k);
 r := 1;
 while k > 0 do
   begin
     r := LongInt(r) * n mod 10;
     Dec(k);
   end;
 Write('Младшая цифра: ', r);
end.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.01.2005 14:07
Сообщение #3


Гость






starmaster
Ну, для того, чтобы узнать только последнюю (младшую) цифру результата, не обязательно возводить в степень k все число n. Достаточно возвести "n mod 10" в степень k (то есть последнюю цифру n). Ну а дальше все просто:
N^(Р*K) = (N^K)^Р, то есть достаточно показатель степени (К) разложить на простые множители, и каждый раз последнюю цифру результата возводить в требуемую степень...

Пример:
Найти последнюю цифру 4^24...
24 = 2*2*2*3 => 4^24 = (4^2)^2^2^3
4^2 = 16 ; берем последнюю цифру (6)
6^2 = 36 ; (6)
6^2 = 36 ; (6)
6^3 = 216; (6)
то есть последняя цифра 4^24 должна быть равна 6...
Проверяем: 4^24 = 281474976710656

Я думаю, проблем с реализацией не возникнет... ;)

xds sad.gif Уже всё решили....

Сообщение отредактировано: volvo - 12.01.2005 14:11
 К началу страницы 
+ Ответить 
starmaster
сообщение 12.01.2005 15:45
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Конечно спасибо большое! Предыдущее условие мне нужно было для задачки, которую я изложу ниже. Я и сам смогу решить, просто объясните, пожалуйста, условие:

Дано число N, в котором не менее 2 цифр. Найти разность числа, составленного из 2-х старших цифр и числа, составленного из 2-х младших цифр.
Вход
В первой строке входа дано число N (целое число)
Выход
В первую строку выхода вывести результат
Пример
Вход:

693
Выход:

-24
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.01.2005 15:59
Сообщение #5


Гость






starmaster
Объясните, пожалуйста 2 момента:

1. Неясно каким образом эта задача связана с вышеописанной.
2. (6 - 94) никак не равно (-24). Мало того, с этими цифрами вообще нельзя получить (-24) в любой перестановке.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 0:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"