Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 20.08.2015
Сообщений: 23
1

Выяснить, чему будет равен остаток от деления 2 в степени N на 10?

21.03.2016, 18:28. Показов 6807. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие задачи - Чему будет равен остаток от деления 2 в степени N на 10?

Входные данные
Дано единственное неотрицательное число 0 ≤ N ≤ 10 в степени 9.

Выходные данные
Выведите ответ на задачу.
НАПРИМЕР : введено 3 , ответ 8 . Введено 9 , ответ 2 etc

Вот мой код , по моему мнению все работает отлично . Но отсылаю на тест и заваливаюсь на первом же тесте . И не могу понять почему ?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Program Olymp;
const c = 2; 
var res: real; b,i:integer; a :int64;
BEGIN
read(a);
//в степень
if (a >= 0) and (a <= 10000000000) then //смотрю на диапазон
     begin
b := 1;
while i < a do begin//возвожу в степень
        b := b * c;
        i := i + 1;
    end; 
    end;  
    res := b mod 10; //ищу остаток
   writeln(res);      
END.
Сам ресурс : http://codeforces.com/gym/100924/problem/A
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2016, 18:28
Ответы с готовыми решениями:

Найти числа, у которых остаток от деления на M равен L
Даны натуральные числа a1,2.....an указать те у которых остаток от деления на M равен L...

Чему будет равен 17 элемент прогрессии
чему будет равен 17 элемент прогрессии, если a1=1, an=a(n-1)+8

Найти сумму элементов массива целых чисел C(1.12), удовлетворяющих условию:остаток от деления элемента на 2 равен 3
Найти сумму элементов массива целых чисел C(1..12), удовлетворяющих условию:остаток от деления...

Остаток от деления равен 0 в BigInteger
Я хочу сделать вот такое условие проверки if (факториал(m)%n==0), но только для BigInter for...

11
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
21.03.2016, 18:37 2
Смотрите.
По большому счёту нужна лишь последняя цифра числа. Её можно находить на каждой итерации цикла, не дожидаясь вычисления 21'000'000'000.
Попробуйте.

Следующий этап - осознание цикличности последней цифры, причём в небольшом диапазоне чётных цифр. Тогда достаточно понять, на какую фазу этого цикла попадает N и сразу без расчётов выдать результат. Нужно лишь учесть особый случай, когда N=0.
0
0 / 0 / 0
Регистрация: 20.08.2015
Сообщений: 23
21.03.2016, 18:46  [ТС] 3
Не могли бы вы поподробней рассказать про нахождении числа при итерации .
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
21.03.2016, 18:55 4
Покажу схематично.
Pascal
1
2
3
  a:=1;
  for i:=1 to N do
    a:=(a*2) div 10;
Но повторюсь - это промежуточный этап. Т.к. попробуйте распечатать результаты при N от 0 до 15. И увидите закономерность.
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
21.03.2016, 19:03 5
owire, периодичность повторения цифр 2,4,8,6 в результатах вычисления степеней двойки - каждые 4 значения. Поэтому , остатком от деления N на 4 проверяем какое значение по счету - и выводим сразу соответствующую цифру.
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
21.03.2016, 19:07 6
Не совсем - нужно учесть случай с N=0.

Не торопитесь заглядывать по ссылке - попробуйте самостоятельно.
Кликните здесь для просмотра всего текста
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
21.03.2016, 19:11 7
ФедосеевПавел, случай с нулем уже учтен:
Pascal
1
while i < a do
Добавлено через 2 минуты
Только на If поменять нужно.
в виде
Pascal
1
if a >0 then begin
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
21.03.2016, 19:14 8
Не хочу преломлять копья по поводу черновой программы, которая не работает.
Предоставит ТС новое на обсуждение - буду думать.
0
0 / 0 / 0
Регистрация: 20.08.2015
Сообщений: 23
21.03.2016, 19:22  [ТС] 9
ТЗ подробное на сайте . Сайт в самом начале ))
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
21.03.2016, 19:56 10
Лучший ответ Сообщение было отмечено owire как решение

Решение

Вот в таком виде пройдет.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  b: integer;
  N: int64;
begin 
   readln(N);  
   b := 1;
    if N > 0 then 
    begin
      b := N mod 4;
      case b of
        0: b := 6;
        1: b := 2;
        2: b := 4;
        3: b := 8;
      end;
    end;    
  writeln(b);      
end.
1
0 / 0 / 0
Регистрация: 20.08.2015
Сообщений: 23
21.03.2016, 21:53  [ТС] 11
Не мог ли бы Вы теперь дать подробное объяснение , что именно вы делали?))Я буду вам очень признаателен
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
21.03.2016, 22:09 12
вот же
Цитата Сообщение от capricornus CF Посмотреть сообщение
периодичность повторения цифр 2,4,8,6 в результатах вычисления степеней двойки - каждые 4 значения. Поэтому , остатком от деления N на 4 проверяем какое значение по счету - и выводим сразу соответствующую цифру.
1
21.03.2016, 22:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2016, 22:09
Помогаю со студенческими работами здесь

Выведите остаток от деления A^B (A в степени B) на C
Помогите, пожалуйста, исправить программу Вам даны целые числа A, B и C. Выведите остаток от...

Вычислить остаток от целочисленного деления 13 в 5 степени на 24
13^5mod24 как пишется и какие библиотеки нужно добавить. И что бы для прим данных то есть на int....

Указать те числа, у которых остаток от деления на М равен L
1. Даны натуральные числа a1, a2, …an. Указать те, у которых остаток от деления на М равен L (0&lt;=...

Указать те числа, у которых остаток от деления на М равен L
Даны натуральные числа a1,a2,.. ,an Указать те из них, у которых остаток от деления на М равен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru