Другие языки программирования и технологии

Помогите до решать задачу на паскале

Помогите Решить задачу на паскале
Шестизначные "счастливые" числа (сумма первых трех цифр равна сумме трех последних) , кратные семи.

Пытался решить
вот осталось только сделать вывод всех чисел счастливых что дописать

Program PRACT9;
Uses CRT;
Var a,b,c,d,e,f: byte;
Count: Word;
Begin
ClrScr;
Count := 0;
For a := 1 to 9 do
Begin
If (a in [2,4,6,8]) then Continue;
For b := 1 to 9 do
Begin
If (b in [2,4,6,8,a]) then Continue;
For c := 1 to 9 do
Begin
If (c in [2,4,6,8,a,b]) then Continue;
For d := 2 to 8 do
Begin
If (d in [3,5,7]) then Continue;
If (c = 7) and
(d = 8) then Continue;
For e := 2 to 8 do
Begin
If (e in [3,5,7]) then
Continue;
For f := 2 to 8 do
Begin
If (f in [3,5,7]) then
Continue;
Inc(Count);
End;
End;
End;
End;
End;
End;
Writeln('Счастливых билетов: ',Count);
ReadKey;
End.
Доброго времени суток.

Что-то сложновато вы начали. Посмотрите такое решение. Это полное число! счастливых" билетов. Дополнить его проверкой на кратность 7 не сложно.

program HappyTicket;
uses Crt;
var
j, m : LongInt;
SS : String;

begin
ClrScr;
m := 0;
for j:=0 to 999999 do begin {цикл от 0, а не от 100000, т. е. в начале номера могут быть нули}
Str(j, SS);
SS := Copy('000000', 1, 6 - Length(SS)) + SS;
if (Ord(SS[1])-48+Ord(SS[2])-48+Ord(SS[3])-48) = (Ord(SS[4])-48+Ord(SS[5])-48+Ord(SS[6])-48) then
Inc(m);
end;
WriteLn(m);

ReadLn; {это чтобы увидеть результат}
end.

А вот решение, предложенное {http://www.g6prog.narod.ru/g6_1002.html}

program HappyTicket;
uses Crt;
var
j,k, l,m : Longint
A : Array [0..27] of Integer; {27 потому что максимальная сумма трех цифр 27, т. е. 9+9+9}
begin
ClrScr;
Writeln ('счастливый билет');
for j:=1 to 27 do A[j]:=0; {обнуляем массив}
for j:=0 to 9 do
for k:=0 to 9 do
for l:=0 to 9 do
A[j+k+l] := A[j+k+l] + 1;

for j:=0 to 27 do
m := m + A[j]*A[j];
WriteLn(m);

ReadLn; {это чтобы увидеть результат}
end.

Удачи!
Николай Новиков
Николай Новиков
59 612
Лучший ответ
хм... а есть же решение на много проще =-) ну канеш если тебе память не важна =-)
т. к. числа шетизначные, то запускаем цикл от 100000 до 999999 и вычленяем из числа цифры при помощи div и mod.получив шесть цифр, поерим сумму первых трёх последних трёх =-)
если будут вопросы по реализации то милости прошу в асю 472138728
Askhat™
Askhat™
964