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

помогите решить задачу с помощью турбо паскаля: Вывести все шестизначные «счастливые номера». Сколько их всего?

var N1, N2, N3, N4, N5, N6 : Byte; Kol : Word;
begin
Kol := 0;
for N1 := 0 to 9 do
for N2 := 0 to 9 do
for N3 := 0 to 9 do
for N4 := 0 to 9 do
for N5 := 0 to 9 do
for N6 := 0 to 9 do
if N1+N2+N3 = N4+N5+N6 then
begin
Write(N1, N2, N3, N4, N5, N6, ' ');
Kol := Kol + 1;
end;
WriteLn;
WriteLn('Количество = ', Kol);
end.
Согласен.
Если нужны "номера", а не "номера билетов", то первый цикл:
for N1 := 1 to 9 do
Роман Крюков
Роман Крюков
84 199
Лучший ответ
Если считать по классической "счастливой" формуле, то счастливых номеров 55252. В С++ это будет так:
<noindex>
#include <fstream.h>
#include <process.h>
using namespace std;
void main()
{
ofstream out;
out.open("LuckyTicket.txt",ios::out);
int i1,i2,i3,i4,i5,i6,count=0;
for(i1=0;i1<10;i1++)
for(i2=0;i2<10;i2++)
for(i3=0;i3<10;i3++)
for(i4=0;i4<10;i4++)
for(i5=0;i5<10;i5++)
for(i6=0;i6<10;i6++)
if(i1+i2+i3==i4+i5+i6)
{
out<
IA
Imalone Again
65 828
Добавлю тоже очень простое решение, которое работает в РАЗЫ быстрее

VAR
N1, N2, N3, N4, N5, K: integer;
BEGIN
K := 0;
for N1 := 0 to 9 do
for N2 := 0 to 9 do
for N3 := 0 to 9 do
for N4 := 0 to 9 do
for N5 := 0 to 9 do
if ((N1 + N2 + N3 - N4 - N5)>=0)and((N1+ N2 + N3 - N4 - N5)<=9)
then K := K + 1;
WriteLn('Количество = ', K);
END.
ЕJ
Евгений Joni
7 165
2 Jurii
Нестандартно и оригинально. Только первый цикл от 1 начинать надо (в условии только шестизначные числа)