![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
reill |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Задали преподователи задачку:
Придумать алгоритм записи девятизначного числа,в котором нет повторяющихся цифр и которое делится без остатка на 11.Число делится на 11,если разность между суммой цифр,стоящих на четных местах суммой -на нечетных делится на 11 или равна нулю. Определить минимальное и максимальное среди этих чисел. Минимальное: 102347586; S1=1+2+4+5+6=18; S2=0+3+7+8=18. Я тут пару часиков посидел вот катала начало: Код program cz; type mn=set of byte; masiv=array[1..9] of string; var cch: masiv; cn: masiv; c:longint; obr: string; i:byte; function mnog(var b: string): boolean; var f,z integer; begin val(b,f,z); for i:=0 to 9 begin if f=i then end; begin randomize; c:=trunc(random*1000000000); str(c,obr); for i:=1 to 9 do begin if odd(i) then begin cn[i]:=copy(obr,i,1); writeln('cn[',i,']:=',cn[i]); end else begin cch[i]:=copy(obr,i,1); writeln('cch[',i,']:=',cch[i]); end end; end. Но чего то мне этот алгоритм не нравится у кого есть другие идеи буду рад обсудить.... Сообщение отредактировано: volvo - 17.12.2004 11:43 |
![]() ![]() |
reill |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Да с этим я разобрался все дописал вот что вышло:
Код program cz_new; uses crt; type masiv=array[1..9] of byte; const chisla: array[1..10] of longint = & #40;123456789,123456780,123456709,123456089,123450789,123406789,123056789,120456 789,103456789, 234567890); var c: masiv; b:longint; i,j,k: byte; f: integer; fl: text; procedure pr(var a:longint); var obr: string; begin str(a,obr); for i:=1 to 9 do begin val(copy(obr,i,1),c[i],f); writeln(c[i]); end; end; procedure perest; var st,st2: string; begin f:=c[1]; for i:=2 to 9 do c[i-1]:=c[i]; c[9]:=f; if c[1]=0 then begin f:=c[1]; for i:=2 to 9 do c[i-1]:=c[i]; c[9]:=f; end; st2:=''; for i:=1 to 9 do begin str(c[i],st); st2:=st2+st; end; val(st2,b,f); end; begin clrscr; assign(fl,'out.txt'); rewrite(fl); for j:=1 to 10 do begin pr(chisla[j]); for k:=1 to 8 do begin perest; if b mod 11 = 0 then writeln(fl,B); end; end; close(fl); end. Но вот маза которую я понял, когда посмотрел на результаты - то что этими 10 числами не отделаешься, цифры ведь могут стоять не только подряд, а у меня они попорядку меняются местами... обыдно, надо додумывать "задачку".... >:( Сообщение отредактировано: volvo - 17.12.2004 11:46 |
![]() ![]() |
![]() |
Текстовая версия | 30.07.2025 9:02 |