![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 31.03.2013
Сообщений: 8
|
![]()
Искал, искал задачи про автоморфные числа, почему то рабочих не нашел... В общем помогите мне пожалуйста решить вот такую задачу: Пользователь вводит натуральное число n (n>=5). Среди чисел 1,...,n программа находит все такие, запись которых совпадает с последними цифрами записи их квадрата (например, 6^2=36, 25^2=625)
Я еще только только начал изучать С++ смог осилить только вот это, то есть вывожу все числа до n их квадраты, но вот как теперь выразить последнюю цифру квадрата (ну у небольших чисел, квадрат которых меньше 81 можно, последнюю цифру можно выразить при помощи деления на 10 с остатком а с остальными как?) и сравнить ее с самим числом? Это все что я смог сам сделать: Код:
Помогите пожалуйста, сдавать нужно скоро преподавателю ![]() Последний раз редактировалось Stilet; 31.03.2013 в 16:05. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]() Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Регистрация: 31.03.2013
Сообщений: 8
|
![]()
Во круто спасибо! А вы не могли бы объяснить те строчки которые вы добавили?
|
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Пожалуйста.
Функция len возвращает число с таким количеством нулей, каково количество разрядов переданного числа i (берем число и делим на 10, пока оно не выродится в 0, при этом временную переменную домножаем на 10). Ну и все. Получаем остаток от деления квадрата i на число с требуемым количеством нулей (то есть выделяем последние цифры) и сравниваем с самим числом i.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 |
Регистрация: 31.03.2013
Сообщений: 8
|
![]()
Я что то не очень понимаю, объясните мне пожалуйста все построчно, что каждая строка делает...
|
![]() |
![]() |
![]() |
#6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Какие именно строчки вызывают затруднения?
Единственное отличие от Вашей программы - функция len.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#7 |
Регистрация: 31.03.2013
Сообщений: 8
|
![]()
int
len(long long unsigned i) { int k = 1; while (i) { k *= 10; i /= 10; } return k; } и for (long long unsigned i = 1; i <= n; ++i) { if (i * i % len(i) == i) { cout << i << endl; } |
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]() Код:
Цикл, пока i не равно 0. Умножаем k на 10 и делим i на 10. Возвращаем k. Проделайте на бумажке, чтобы понять, что функция вернет число вида 10...0, где количество нулей соответствует длине числа i. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#9 | |
Регистрация: 31.03.2013
Сообщений: 8
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Пусть, рассматриваемое число 666
![]() k = 1 Шаги цикла: 1) пока 666 не равно 0 k = 10 i = 66 2) пока 66 не равно 0 k = 100 i = 6 3) пока 6 не равно 0 k = 1000 i = 0 4) пока 0 не равно 0 -> выход из цикла k = 1000 Количество нулей - три. Цикл while исполняется, пока условие отлично от нуля.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на тип запись: из ассортимента конфет выбрать те, стоимость которых от 30 до 55 рублей за 1 кг | lililili | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 29.11.2012 15:01 |
Найти первые 4 четыре натуральных числа, пятая степень которых оканчивается тремя одинаковыми цифрами, кроме нулей | KolinKr | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.01.2012 15:37 |
запись любого целого числа n (n<3999) арабскими цифрами перевести в запись римскими цифрами (на языке C) | qazse | Помощь студентам | 1 | 24.11.2011 12:05 |
Выбрать числа, у которых совпадает первая и последняя цифра (в Lazarus) | Сristina | Помощь студентам | 0 | 29.03.2011 19:37 |