Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41

Найти такие числа запись которых совпадает с последними цифрами записи их квадрата

10.12.2016, 15:02. Показов 6920. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Натолкните на мысль, пожалуйста!!! Программу пока не пишите, а дайте подсказки, или покажите код похожих программ. Очень прошу помочь
Дано натуральное число n. Среди чисел 1, ..., n найти такие, запись которых совпадает с последними цифрами записи их квадрата. Например, 6 ( ), 25 ( ) и т.д.

Добавлено через 47 минут
У меня есть вот какая идея, но она не работает((( Объясните почему и исправьте ошибки.
Очень прошу откликнитесь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
    int n, i;
    cout << "n = ?\b";  cin >> n;
    for (i = 1; i <= n; i++)
        if (i < 100 && i=(i*i)%100) { cout << "i=" << i << "   " << (i*i) % 100<<endl; }
         if (100 <= i < 1000 && i = (i*i) % 1000) { cout << "i=" << i << "   " << (i*i) % 1000 << endl; }
          if (1000 <= i < 10000 && i = (i*i) % 10000) { cout << "i=" << i << "   " << (i*i) % 10000 << endl; }
           if (10000 <= i < 100000 && i = (i*i) % 100000) { cout << "i=" << i << "   " << (i*i) % 100000 << endl; }
            if (100000 <= i < 1000000 && i = (i*i) % 1000000) { cout << "i=" << i << "   " << (i*i) % 1000000 << endl; }
 
    system("pause");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2016, 15:02
Ответы с готовыми решениями:

Среди чисел 1, ..., n найти все такие, запись которых совпадает с последними цифрами записи их квадрата
Среди чисел 1, ..., n найти все такие, запись которых совпадает с последними цифрами записи их квадрата. Составил алгоритм, а дальше тю-тю....

Среди чисел от 1 до n найти такие, запись которых совпадает с последними цифрами записи их квадратов
Дано натуральное число п. Среди чисел 1,..., п найти такие, запись которых совпадает с последними цифрами записи их квадратов ...

Ввести натуральное число n. Среди чисел 1,.,n найти все такие числа, запись которых совпадает с последними цифрами
Ввести натуральное число n. Среди чисел 1,...,n найти все такие числа, запись которых совпадает с последними цифрами записи их квадрата...

47
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
11.12.2016, 00:07  [ТС]
Студворк — интернет-сервис помощи студентам
Понимаю, Байт, все понимаю. Я буду очень стараться стать настоящим хорошим программистом))) Буду стараться улавливать похожесть.
А завтра буду терзать сдедующую задачу или она будет терзать меня)
1
11.12.2016, 00:29

Не по теме:

Цитата Сообщение от Juliann Посмотреть сообщение
А завтра буду терзать сдедующую задачу или она будет терзать меня)
Слово "терзать" - замените на слово "любить". Будет намного легче. Хотя любовь это труд. Она бывает трудна. Ну и что? :)
Лишь бы, - не зла! :D

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
11.12.2016, 02:43
Эмм... Простите, что влезаю, но вот накидал несколько строчек на волшебном языке (во-первых, потому что там длинная арифметика на борту из коробки, а во-вторых, очень уж он подходит для таких задачек ). Если не напутал - все требуемые числа до 20-значных включительно. absolute running time: 0.13 sec, cpu time: 0.02 sec :
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
import Data.List
 
good ns = all (uncurry (==)) $ zip (s $ n*n) (s n) where
    s = reverse . show
    n = read ns :: Integer
 
allGoodN 0 = [""]
allGoodN n = allGoodN (n-1) >>= \n -> filter good . map (:n) $ ['0'..'9']
 
tst ns = putStrLn $ show n ++ " -> " ++ show (n*n) where n = read ns :: Integer
 
main = mapM tst . sort . allGoodN $ 20
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
0 -> 0
1 -> 1
5 -> 25
6 -> 36
25 -> 625
76 -> 5776
376 -> 141376
625 -> 390625
9376 -> 87909376
90625 -> 8212890625
109376 -> 11963109376
890625 -> 793212890625
2890625 -> 8355712890625
7109376 -> 50543227109376
12890625 -> 166168212890625
87109376 -> 7588043387109376
212890625 -> 45322418212890625
787109376 -> 619541169787109376
1787109376 -> 3193759921787109376
8212890625 -> 67451572418212890625
18212890625 -> 331709384918212890625
81787109376 -> 6689131260081787109376
918212890625 -> 843114912509918212890625
9918212890625 -> 98370946943759918212890625
40081787109376 -> 1606549657881340081787109376
59918212890625 -> 3590192236006259918212890625
259918212890625 -> 67557477392256259918212890625
740081787109376 -> 547721051611007740081787109376
3740081787109376 -> 13988211774267263740081787109376
6259918212890625 -> 39186576032079756259918212890625
43740081787109376 -> 1913194754743017343740081787109376
56259918212890625 -> 3165178397321142256259918212890625
256259918212890625 -> 65669145682477392256259918212890625
743740081787109376 -> 553149309256696143743740081787109376
2256259918212890625 -> 5090708818534039892256259918212890625
7743740081787109376 -> 59965510454276227407743740081787109376
92256259918212890625 -> 8511217494096854352392256259918212890625
http://rextester.com/TRSPA46137
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
11.12.2016, 09:18
эхЪ, _Ivana, ты неисправим
0
11.12.2016, 10:45

Не по теме:

Цитата Сообщение от Ferrari F1 Посмотреть сообщение
эхЪ, _Ivana, ты неисправим
Разве это плохо?
Серийный кодер, это звучит гордо. :yes:
Андрей, :handshake:

0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
11.12.2016, 10:47
IGPIGP, _Ivana == андрей ?
Если да, то тогда я совсем все перестал понимать в этай жизни
0
11.12.2016, 10:56

Не по теме:

Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Если да, то тогда я совсем все перестал понимать в этай жизни
Я вот не понимаю как за 130 ms это сделать. Мы можем сказать "Это не плюсы! Зачем это здесь! .... " и.т.д. и т.п. Но правильнее, - положить код и сказать "Вот так быстрее". :)

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
11.12.2016, 11:14
Любопытно вот что. В посте 7 уважаемый IGPIGP, тоже привел ряд чисел. Последняя строчка
9713095681 2110507339713095681
отсутствует среди результатов уважаемого _Ivana, в посте 23
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
11.12.2016, 11:17
Байт,
Цитата Сообщение от Байт Посмотреть сообщение
отсутствует среди результатов уважаемого _Ivana, в посте 23
Не поможет, imho.
Он сейчас принесёт и то что у меня отсутствует. И время сократит. Я его знаю.
0
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
11.12.2016, 12:47  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Слово "терзать" - замените на слово "любить". Будет намного легче. Хотя любовь это труд. Она бывает трудна. Ну и что?
Лишь бы, - не зла!
Хорошо, мы будем любить. Я программу, а она меня
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
11.12.2016, 13:13
Цитата Сообщение от IGPIGP Посмотреть сообщение
Он сейчас принесёт
Ан может и не донесть!
Меня смутило, что в вашей серии это единственное число с окончанием на 1 (не считая самого первого). И в свое смущения я запомнил. А в серии _Ivana, бах - такого явления природы нет
И 97130956812 вряд ли может начинаться на "2". Скорее на "9". Очень подозреваю, что тут уже переполнение, мешающее все карты...
И тип unsigned long, придуманный специально для маскировки переполнений...
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
11.12.2016, 13:30
Цитата Сообщение от Байт Посмотреть сообщение
И 97130956812 вряд ли может начинаться на "2". Скорее на "9". Очень подозреваю, что тут уже переполнение, мешающее все карты...
Беда с этим. Вот ещё один алгоритм он гораздо быстрее (тот что на нулях в конце), но даёт тот же глюк. Прямое возведение в квадрат показывает что это число не верно (или глючит квадрат (шютка) )
Картину чёрный квадрат прилагаю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <ctime>
using namespace std;
 
int main(int argc, char* argv[])
{
unsigned long long  a, b, c, d;
const unsigned long long e=/*1000000000*/10000000000;
size_t begin_work,end_work;
begin_work=clock();
cout<<1<<'\t'<<1<<endl;// ))
for(a=5; a<e; a++)
{
if(a%1 && a%5 && a%6) continue;
c=a;
d=1;
while(c/=10){
d*=10;
}
d*=10;
b=a*(a-1);
if(!(b%d))cout<<a<<'\t'<<a*a<<endl;
}
end_work=clock();
cout<<"\ntime= "<<(end_work-begin_work)/1000<<endl;
cout<<endl;
system("pause");
return 0;
}
Миниатюры
Найти такие числа запись которых совпадает с последними цифрами записи их квадрата  
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
11.12.2016, 13:42
Цитата Сообщение от Juliann Посмотреть сообщение
Хорошо, мы будем любить. Я программу, а она меня
Вот!

Добавлено через 8 минут
Цитата Сообщение от Байт Посмотреть сообщение
для маскировки переполнений...
Тут оно в незамаскированном виде
макс значение 18 446 744 073 709 551 615 то есть грубо говоря 1,8e19
Когда a достигает 10 степени по порядку, его квадрат уже больше.
Так что чуть поменьше надо было выбрать.
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
12.12.2016, 03:28
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
эхЪ, _Ivana, ты неисправим
горбатого, как говорится, могила

Господа, если вы возьмете любой калькулятор с поддержкой длинной арифметики, то вы сможете убедиться, что
Haskell
1
9713095681^2 == 94344227708260853761
и конечно при расчете в С++ возникает переполнение, дающее ошибку. Поэтому и не принес (С)

ЗЫ мой алгоритм базируется на очевидном и тривиальном факте, который легко доказать математически а потом использовать. Я пока не буду его озвучивать, чтобы желающие могли додуматься до него самостоятельно Но если припрете к стенке и не распарсите из хаскельного кота - то придется расколоться Вообще хорошая задачка - написать функцию, возвращающую n-е такое число, например 200-е. Может создам кату на кодеварсах.

ЗЗЫ за взаимную сочетательную любовь!

Добавлено через 8 часов 36 минут
Собственно, по мотивам этой задачки - обещанная ката на кодеварсах: https://www.codewars.com/kata/... ef810001e8 Не знаю, откроется ли без регистрации.
1
12.12.2016, 10:49

Не по теме:

Цитата Сообщение от IGPIGP Посмотреть сообщение
if(a%1 && a%5 && a%6) continue;
a%1 - гениальное условие. Продукт кусочно-непрерывного мышления, imho.
Зато видно, что в этот код никто не вглядывался.
И слава богу. :D
Цитата Сообщение от _Ivana Посмотреть сообщение
ЗЗЫ за взаимную сочетательную любовь!
Если это тост, - я тут.
Если призыв к атаке, я тоже тут. :yes:

0
2 / 2 / 0
Регистрация: 04.12.2016
Сообщений: 41
12.12.2016, 13:35  [ТС]
Скажите, пожалуйста, что может привести к "зацикливанию" программы?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.12.2016, 13:51
Цитата Сообщение от Juliann Посмотреть сообщение
Скажите, пожалуйста, что может привести к "зацикливанию" программы?
Хороший вопрос! Да все, что угодно!
2
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
12.12.2016, 14:08
IGPIGP, это и тост и призыв одновременно Я все лелею надежду, что кто-то догадается до оптимального алгоритма.
1
12.12.2016, 14:12

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
это и тост и призыв одновременно
Тут главное, - правильная очерёдность! 8-)

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
12.12.2016, 14:20
IGPIGP, правильная очерёдность важна даже в моем алгоритме, что уж там говорить про остальное Но я думал, что все выпили еще вчера, а сегодня пора переходить к следующему этапу. Могу дать жиииирную подсказку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2016, 14:20
Помогаю со студенческими работами здесь

Найти все двухзначные (трехзначные) числа, которые совпадают с последними цифрами своих квадратов
Найти все двухзначные (и трехзначные) числа, которые совпадают с последними цифрами своих квадратов. например, 25^2 =625, 76^2 =5676.

Найти все такие простые числа, не превосходящие заданного N, в троичной записи которых цифра 2, встречается заданное число раз
Найти все такие простые числа, не превосходящие заданного N, в троичной записи которых цифра 2, встречается заданное число раз.

Найти все такие числа k, что k-я строка совпадает с k-м столбцом. Найти наибольший элемент главной диагонали
Найти все такие числа k, что k-я строка совпадает с k-м столбцом. Найти наибольший элемент главной диагонали матрицы и вывести на печать...

Найти такие числа, запись которых совпадает с последними цифрами записи их квадрата
Дано натуральное число n . Среди чисел 1,2,...,n найти все такие, запись которых совпадает с последними цифрами записи их квадрата (как,...

Среди чисел найти такие, запись которых совпадает с последними цифрами записи их квадрата
3) дано натуральное число n. Среди чисел 1,...,n. Найти все такие, запись которых совпадает с последними цифрами записи их квадрата(как...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru