Форум «Всё о Паскале» _ Задачи _ Помогите пожайлусто с Паскалем
Автор: ovosch 24.05.2011 2: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).Заранее спасибо.
Автор: DarkWishmaster 24.05.2011 2:32
Цитата(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 24.05.2011 2:37
Цитата(DarkWishmaster @ 23.05.2011 22:32)
дело в том что у тебя a:=random(900)+100; так как число 100 или 147 могут не попадать в ряд случайно сгенерированых чисел, то ничего тебе на экран выводить не будет. Напиши a:=i; и цикл начинай с 100, тебе же нужно 3 значные числа.
Спасибо, помог,работает!!!!
Автор: Lapp 24.05.2011 3:20
+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;