Помогите Решить задачу на паскале
Шестизначные "счастливые" числа (сумма первых трех цифр равна сумме трех последних) , кратные семи.
Пытался решить
вот осталось только сделать вывод всех чисел счастливых что дописать
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.
Удачи!
Что-то сложновато вы начали. Посмотрите такое решение. Это полное число! счастливых" билетов. Дополнить его проверкой на кратность 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.
Удачи!
хм... а есть же решение на много проще =-) ну канеш если тебе память не важна =-)
т. к. числа шетизначные, то запускаем цикл от 100000 до 999999 и вычленяем из числа цифры при помощи div и mod.получив шесть цифр, поерим сумму первых трёх последних трёх =-)
если будут вопросы по реализации то милости прошу в асю 472138728
т. к. числа шетизначные, то запускаем цикл от 100000 до 999999 и вычленяем из числа цифры при помощи div и mod.получив шесть цифр, поерим сумму первых трёх последних трёх =-)
если будут вопросы по реализации то милости прошу в асю 472138728
Похожие вопросы
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите,пожалуйста,решить задачу в Паскале.
- Программерам умеющим решать задачи на паскале
- Помогите пожалуйста с задачей на Паскаль.
- Помогите пожалуйста набрать задачу на паскале или на С++
- Помогите написать простенькие задачи в паскале
- Помогите пожалуйста решить задачу в паскале.
- помогите пожалуйста!!!!решить задачу на паскале...
- помогите пожалуйста решить задачи в паскале очень нужно!
- Помогите пожалуйста решить задачу в Паскале!