Другие языки программирования и технологии
помогите написать программу на паскале
Создать программу определения числа счастливых шестизначных трамвайных билетов(сумма первых трёх цифр равна сумме трёх последних). Задача не должна занимать более 7 строк(от begin до end).
Вот тебе программа в 4 строчки, полностью оптимизированная, без использования избыточных циклов, лишних подсчетов и строковых операций:
program happy;
var m:array[0..27] of integer; i,r,k,d,l:integer;
begin for i:=0 to 999 do begin d:=i; k:=0; for r:= 1 to 3 do
begin k:= k + d mod 10; d:= d div 10; end; m[k]:=m[k]+1; end;
for i:=0 to 27 do l:=l+m[ i ]*m[ i ]; writeln(l);
end.
Удачи!
program happy;
var m:array[0..27] of integer; i,r,k,d,l:integer;
begin for i:=0 to 999 do begin d:=i; k:=0; for r:= 1 to 3 do
begin k:= k + d mod 10; d:= d div 10; end; m[k]:=m[k]+1; end;
for i:=0 to 27 do l:=l+m[ i ]*m[ i ]; writeln(l);
end.
Удачи!
Четыре строки:
var a1, a2, a3, b1, b2, b3 : byte; k : integer; begin k := 0; for a1 := 0 to 9 do
for a2 := 0 to 9 do for a3 := 0 to 9 do for b1 := 0 to 9 do for b2 := 0 to 9 do
for b3 := 0 to 9 do if a1+a2+a3 = b1+b2+b3 then begin
write(#32, a1, a2, a3, b1, b2, b3); inc(k); end; writeln(' Итого: ', k); end.
Выдает все счастливые и их количество!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ЗЫ Остальным отвечающим: нужно определить не счасливый или нет билет, а количество!
var a1, a2, a3, b1, b2, b3 : byte; k : integer; begin k := 0; for a1 := 0 to 9 do
for a2 := 0 to 9 do for a3 := 0 to 9 do for b1 := 0 to 9 do for b2 := 0 to 9 do
for b3 := 0 to 9 do if a1+a2+a3 = b1+b2+b3 then begin
write(#32, a1, a2, a3, b1, b2, b3); inc(k); end; writeln(' Итого: ', k); end.
Выдает все счастливые и их количество!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ЗЫ Остальным отвечающим: нужно определить не счасливый или нет билет, а количество!
Ну, думаю, ясно. На основе кода -=Den=-
program TramTicket;
var x,n:integer;
begin
n:=0;
for x:=1000 to 999999 do
if ((x div 100000) + ((x div 10000) mod 10) + ((x div 1000) mod 10)) = (((x div 100) mod 10) + ((x div 10) mod 10) + (x mod 10)) then inc(n);
writeln('Счастливых билетов всего: ',n);
end.
6 строк, считая begin и end.
program TramTicket;
var x,n:integer;
begin
n:=0;
for x:=1000 to 999999 do
if ((x div 100000) + ((x div 10000) mod 10) + ((x div 1000) mod 10)) = (((x div 100) mod 10) + ((x div 10) mod 10) + (x mod 10)) then inc(n);
writeln('Счастливых билетов всего: ',n);
end.
6 строк, считая begin и end.
begin
write('Введите число: ');
readln(x);
if ((x div 1000000) + ((x div 100000) mod 10) + ((x div 10000) mod 10)) = (((x div 1000) mod 10) + ((x div 100) mod 10) + (x mod 10)) then
writeln('Билет счастливый');
else
writeln('Билет не счастливый');
end.
write('Введите число: ');
readln(x);
if ((x div 1000000) + ((x div 100000) mod 10) + ((x div 10000) mod 10)) = (((x div 1000) mod 10) + ((x div 100) mod 10) + (x mod 10)) then
writeln('Билет счастливый');
else
writeln('Билет не счастливый');
end.
Var
bilet: string[6];
begin
Readln(bilet);
if (StrToInt(bilet[1])+StrToInt(bilet[2])+StrToInt(bilet[3]))=(StrToInt(bilet[4])+StrToInt(bilet[5])+StrToInt(bilet[6]))then Writeln('Yes') else Writeln('No');
Readln;
end.
bilet: string[6];
begin
Readln(bilet);
if (StrToInt(bilet[1])+StrToInt(bilet[2])+StrToInt(bilet[3]))=(StrToInt(bilet[4])+StrToInt(bilet[5])+StrToInt(bilet[6]))then Writeln('Yes') else Writeln('No');
Readln;
end.
Похожие вопросы
- Помогите написать программу на паскале
- Помогите написать программу на Паскале!
- Ребят, помогите написать программу для Паскаля!
- помогите написать программу на паскале!!! если можно напишите в комментах что где делаете!!!
- Помогите написать программу! Турбо Паскаль 7.0
- Помогите написать программу в Паскале, пожалуйста. см ниже
- Помогите написать программу на Паскале
- Помогите написать программу в паскале
- Помогите написать программу по паскалю для задания! ( см. внутри)
- помогите написать программу на паскаль Заданное натуральное число не превосходящее 1000 записать прописью, то есть выве