Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2013, 10:40   #1
DERZArap4KA
 
Регистрация: 04.02.2013
Сообщений: 9
Вопрос как решить лабораторную?

Дано натур. Число N среди чисел от 1 до. N. Янайти все такие запись которых совпадает с последними цифрами записи их квадрата(6 в квадрате =36; 25 в квадрате=625) и т.д.
DERZArap4KA вне форума Ответить с цитированием
Старый 05.02.2013, 10:43   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Какой язык программирования и есть ли наработки?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.02.2013, 10:44   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

В цикле от одного до N получать квадраты чисел и сравнивать числа с последними цифрами этих квадратов. Чтоб получить последние цифры квадратов - используются операции целочисленного деления и остатка от деления. Думаю, тут достаточно только остатка.

А язык программирования какой?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 05.02.2013 в 12:38.
Sciv вне форума Ответить с цитированием
Старый 05.02.2013, 11:23   #4
DERZArap4KA
 
Регистрация: 04.02.2013
Сообщений: 9
По умолчанию

Язык программирования Паскаль. Наработок пока нет, пытаюсь программу составить.
DERZArap4KA вне форума Ответить с цитированием
Старый 05.02.2013, 12:33   #5
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Код:
for i:=1 to N do
begin 
    if (i mod 10) = (i*i mod 10) then 
        writeln(i);
end;
Hemul вне форума Ответить с цитированием
Старый 05.02.2013, 12:37   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Hemul, обратите внимание, что в примере еще и двухзначные числа используются, т.е. 25*25=625. Ваш код работает только для первого десятка (0 до 9)
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.02.2013, 12:42   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
var i,j: word;
begin
  for i:=1 to N do begin
    case i of
      0..9: j:=i*i mod 10;
      10..99: j:=i*i mod 100;
      100..999: j:=i*i mod 1000;
      1000...9999: j:=i*i mod 10000;
    else j:=i*i mod 100000;
    if i=j then writeln(i);
  end;
end.
Вот как-то так извратно...
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.02.2013, 13:05   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Вот как-то так извратно...
Крибле, крабле, бумс (C++):
Код:
	for(int k=1, lim=10, div5=5, div2=2; (10*N)/lim>0; ++k, lim*=10, div5*=5, div2*=2){
		for(int c = div5; c<lim; c+=div5){
			if(c < lim/10) continue;
			if(c%2==0) continue;
			if(c>N) break;
			if(((c-1)&(div2-1)) == 0) std::cout << c << std::endl;
			if(c==N) break;
			if(((c+1)&(div2-1)) == 0) std::cout << c+1 << std::endl;  
		}
	}
Abstraction вне форума Ответить с цитированием
Старый 05.02.2013, 15:44   #9
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Ахалай махалай
Код:
  for i:=1 to N do begin
    str(i,s);
    if i=sqr(i) mod round(exp(length(s)*ln(10))) then writeln(i, '  ', sqr(i));
  end;
eoln вне форума Ответить с цитированием
Старый 05.02.2013, 15:57   #10
DERZArap4KA
 
Регистрация: 04.02.2013
Сообщений: 9
По умолчанию

В общем я тоже поколдовала над лабой, составила блок-схему, стало намного понятнее.
DERZArap4KA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пoмогитe решить лабораторную работу izoalex Паскаль, Turbo Pascal, PascalABC.NET 0 26.12.2011 20:45
Пoмогитe решить лабораторную работу izoalex Паскаль, Turbo Pascal, PascalABC.NET 5 30.11.2011 22:59
Как сделать лабораторную muzon45 Microsoft Office Excel 2 22.11.2011 10:53
Пожалуста помогите решить лабораторную по паскалю на тему ФАЙЛЫ!!! sir.andrey Помощь студентам 1 06.12.2009 05:56