Другие языки программирования и технологии
Помогите решить задачу (в паскале)!
Снежная королева придумала Каю задание: собрать льдинки, у которых число граней, выражающихся не более, чем трехзначным числом, делится на каждую из цифр, встречающуюся в записи числа граней этой льдинки. Когда мальчик соберет все такие льдинки, Снежная королева согласится отпустить его домой. Помоги Каю выбраться из ледяного плена. Желательно без for
var i,j:Integer;
begin
i:=1;
while i<1000 do begin
j:=i;
while j>0 do begin
if (j mod 10=0) then j:=-1 else if (i mod (j mod 10)>0) then j:=-1;
if j>0 then j:=j div 10;
end;
if j=0 then write(i,' ');
inc(i);
end;
end.
Не более трёх граней, не значит три грани, поэтому думаю что так должно быть! )
Результат:
1 2 3 4 5 6 7 8 9 11 12 15 22 24 33 36 44 48 55 66 77 88 99 111 112 115 122 124 126 128 132 135 144 155 162 168 175 184 212 216 222 224 244 248 264 288 312 315 324 333 336 366 384 396 412 424 432 444 448 488 515 555 612 624 636 648 666 672 728 735 777 784 816 824 848 864 888 936 999
begin
i:=1;
while i<1000 do begin
j:=i;
while j>0 do begin
if (j mod 10=0) then j:=-1 else if (i mod (j mod 10)>0) then j:=-1;
if j>0 then j:=j div 10;
end;
if j=0 then write(i,' ');
inc(i);
end;
end.
Не более трёх граней, не значит три грани, поэтому думаю что так должно быть! )
Результат:
1 2 3 4 5 6 7 8 9 11 12 15 22 24 33 36 44 48 55 66 77 88 99 111 112 115 122 124 126 128 132 135 144 155 162 168 175 184 212 216 222 224 244 248 264 288 312 315 324 333 336 366 384 396 412 424 432 444 448 488 515 555 612 624 636 648 666 672 728 735 777 784 816 824 848 864 888 936 999
Ну можно и через while или repeat…until :
N := 100;
repeat
N1 := N div 100;
N2 := N div 10 mod 10;
N3 := N mod 10;
if (N1 <> 0) and (N2 <> 0) and (N3 <> 0) and (N mod N1 = 0) and (N mod N2 = 0) and (N mod N3 = 0) then Write(#32, N);
Inc(N);
until N > 999;
WriteLn;
А вот и результат:
111 112 115 122 124 126 128 132 135 144 155 162 168 175 184 212 216 222 224 244 248 264 288 312 315 324 333 336 366 384 396 412 424 432 444 448 488 515 555 612 624 636 648 666 672 728 735 777 784 816 824 848 864 888 936 999
N := 100;
repeat
N1 := N div 100;
N2 := N div 10 mod 10;
N3 := N mod 10;
if (N1 <> 0) and (N2 <> 0) and (N3 <> 0) and (N mod N1 = 0) and (N mod N2 = 0) and (N mod N3 = 0) then Write(#32, N);
Inc(N);
until N > 999;
WriteLn;
А вот и результат:
111 112 115 122 124 126 128 132 135 144 155 162 168 175 184 212 216 222 224 244 248 264 288 312 315 324 333 336 366 384 396 412 424 432 444 448 488 515 555 612 624 636 648 666 672 728 735 777 784 816 824 848 864 888 936 999
Похожие вопросы
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить задачу в паскале
- Помогите решить задачу на паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Уважаемые!Помогите решить задачу по Паскалю,пожайлуста!
- Помогите решить задачу в паскале
- Помогите решить задачу в паскале, пожалуйста! !
- помогите решить задачу на паскале
- помогите решить задачу по Паскалю