![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Женя |
![]()
Сообщение
#1
|
Гость ![]() |
Обычная прога: Получить все шестизначные счастливые номера. (Про целое число n, удовлетворяющее условию 0<=n<=999999, говорят, что оно представляет собой счастливый номер, если сумма трёх его первых цифр равна сумме трёх его последних цифр; если в числе меньше шести цифр, то недостающие начальные цифры, считаются нулями).
прога: Код program luckynumber; uses crt; var a,b,c,d,e,f:byte; y:longint; x1:integer; luck:real; key:char; begin clrscr; for a:=0 to 9 do for b:=0 to 9 do for c:=0 to 9 do begin x1:=a+b+c; for d:=0 to 9 do for e:=0 to 9 do for f:=0 to 9 do if (x1=d+e+f) then begin y:=y+1; writeln ('Счастливый номер: ',a,b,c,d,e,f); If (y mod 10)=0 then begin writeln('Press Any Key for continue or Esc for exit...'); key:=readkey; if ord(key)=27 then exit; clrscr; end; end; end; readln end. Я что-то застрял с циклами.. как бы их так организовать на блок-схемах, чтобы всё работало? Пожлауйста, помогите! Заранее благодарен! |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
mithquessir
А вот так - до перебора "всего" порядка 27000 значений... Код const total = 999; count = 27; var arrCount: array[0 .. count] of integer; numbers: array[0 .. count, 1 .. total + 1] of integer; i, j, k, T: integer; s, counter: longint; n1, n2: integer; a, b, c, d, e, f: integer; begin counter := 0; for i := 0 to count do begin for j := 0 to total do begin T := j; s := 0; while T > 0 do begin s := s + T mod 10; T := t div 10 end; if s = i then begin inc(arrCount[i]); numbers[i, arrCount[i]] := j end; end; for j := 1 to arrCount[i] do begin n1 := numbers[i, j]; a := n1 div 100; b := (n1 - 100*a) div 10; c := n1 mod 10; for k := 1 to arrCount[i] do begin n2 := numbers[i, k]; d := n2 div 100; e := (n2 - 100*d) div 10; c := n2 mod 10; writeln(a, b, c, ' ', d, e, f); inc(counter); end; end; end; writeln('total numbers: ', counter) end. Сообщение отредактировано: volvo - 23.12.2004 20:34 |
![]() ![]() |
![]() |
Текстовая версия | 10.10.2025 10:22 |