Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите пожайлусто с Паскалем
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ovosch
Проверьте пожалуйсто задачу . Где-то ошибка б но я не знаю как исправить

Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры. (Например, 100, 147).

program ovosch;
var
a,b,e,d,i,n:integer;
begin
for i:=1 to 999 do
begin
a:=random(900)+100;
b:=a mod 100;
d:=b mod 10;
e:=a div 10;
if a=sqr(e)-sqr(d) then writeln(a)
end;
end.


По сути прога должна выдавать только 2 числа (100, 147).Заранее спасибо.
DarkWishmaster
Цитата(ovosch @ 23.05.2011 22:07) *

Проверьте пожалуйсто задачу . Где-то ошибка б но я не знаю как исправить

Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры. (Например, 100, 147).

program ovosch;
var
a,b,e,d,i,n:integer;
begin
for i:=1 to 999 do
begin
a:=random(900)+100;
b:=a mod 100;
d:=b mod 10;
e:=a div 10;
if a=sqr(e)-sqr(d) then writeln(a)
end;
end.

По сути прога должна выдавать только 2 числа (100, 147).Заранее спасибо.

дело в том что у тебя a:=random(900)+100; так как число 100 или 147 могут не попадать в ряд случайно сгенерированых чисел, то ничего тебе на экран выводить не будет.
Напиши a:=i;
и цикл начинай с 100, тебе же нужно 3 значные числа.
ovosch
Цитата(DarkWishmaster @ 23.05.2011 22:32) *

дело в том что у тебя a:=random(900)+100; так как число 100 или 147 могут не попадать в ряд случайно сгенерированых чисел, то ничего тебе на экран выводить не будет.
Напиши a:=i;
и цикл начинай с 100, тебе же нужно 3 значные числа.

Спасибо, помог,работает!!!!
Lapp
+1 от ovosch

Но я бы сделал как-то вот так..
for i:=10 to 99 do begin
a:= i*i;
b:= i*10;
for j:=0 to 9 do
if a-j*j=b+j then writeln(i,j);
end;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.