26.02.2012, 19:22 | #1 (permalink) |
С# - learn or die
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
|
Free Pascal. Полный перебор. Арифметические ребусы
одинаковыми цифрами. Найти также такие значения цифр, при которых сумма цифр в результате окажется наибольшей. Рубус год+год+год+год=век Вот я расшифровала ребус: Program GodVek; uses crt; var g,o,d,v,e,k,l:byte; begin clrscr; l:=0; for g:=1 to 7 do for o:=0 to 7 do for d:=0 to 7 do for v:=1 to 7 do for e:=0 to 7 do for k:=0 to 7 do if (4*(100*g+10*o+d)=100*v+10*e+k) and(g<>o)and(g<>d)and(g<>v)and(g<>e)and(g<>k) and(o<>d)and(o<>v)and(o<>e)and(o<>k) and(d<>v)and(d<>e)and(d<>k) and(v<>e)and(v<>k) and(e<>k) then begin writeln(g,o,d,'+',g,o,d,'+',g,o,d,'+',g,o,d,'=',v, e,k); l:=l+1; begin write('Press Enter...'); readln; end; end; readln end. Помогите со второй частью задачи "Найти также такие значения цифр, при которых сумма цифр в результате окажется наибольшей." Последний раз редактировалось Léon; 26.02.2012 в 19:28 |
26.02.2012, 19:22 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблему решать намного легче, если все о ней узнать Помогите решить три задачи в Free Pascal Полный мод корпуса |
26.02.2012, 19:36 | #3 (permalink) |
С# - learn or die
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
|
Да извините исправлю!
Program GodVek; uses crt; var g,o,d,v,e,k,l:byte; begin clrscr; l:=0; for g:=1 to 9 do for o:=0 to 9 do for d:=0 to 9 do for v:=1 to 9 do for e:=0 to 9 do for k:=0 to 9 do if (4*(100*g+10*o+d)=100*v+10*e+k) and(g<>o)and(g<>d)and(g<>v)and(g<>e)and(g<>k) and(o<>d)and(o<>v)and(o<>e)and(o<>k) and(d<>v)and(d<>e)and(d<>k) and(v<>e)and(v<>k) and(e<>k) then begin writeln(g,o,d,'+',g,o,d,'+',g,o,d,'+',g,o,d,'=',v, e,k); l:=l+1; begin write('Press Enter...'); readln; end; end; readln end. |
26.02.2012, 19:42 | #5 (permalink) |
С# - learn or die
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
|
begin
writeln(g,o,d,'+',g,o,d,'+',g,o,d,'+',g,o,d,'=',v, e,k); l:=l+1; if k mod 20=0 then {решений много, через 20 делаем задержку для просмотра} и это изменила. Подскажите как найти значения цифр, при которых сумма цифр в результате окажется наибольшей. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
26.02.2012, 20:18 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот:
Код:
uses crt; var g1,o1,d1,v1,e1,k1,S:Array[1..100] of byte; g,o,d,v,e,k,l,i,M:byte; begin clrscr; l:=0; for g:=1 to 9 do for o:=0 to 9 do for d:=0 to 9 do for v:=1 to 9 do for e:=0 to 9 do for k:=0 to 9 do if (4*(100*g+10*o+d)=100*v+10*e+k) and(g<>o)and(g<>d)and(g<>v)and(g<>e)and(g<>k) and(o<>d)and(o<>v)and(o<>e)and(o<>k) and(d<>v)and(d<>e)and(d<>k) and(v<>e)and(v<>k) and(e<>k) then begin Inc(l); writeln(g,o,d,'+',g,o,d,'+',g,o,d,'+',g,o,d,'=',v,e,k); S[l]:=v+e+k; g1[l]:=g; o1[l]:=o; d1[l]:=d; v1[l]:=v; e1[l]:=e; k1[l]:=k; If (l mod 20)=0 then begin write('Press Enter...'); readln; end; end; M:=0; for i:=1 to l do if S[i]>M then M:=S[i]; writeln; writeln('Combinations with maximal sum of figures in "vek" (',M,'):'); for i:=1 to l do if S[i]=M then writeln(g1[i],o1[i],d1[i],'+',g1[i],o1[i],d1[i],'+',g1[i],o1[i],d1[i],'+',g1[i],o1[i],d1[i],'=',v1[i],e1[i],k1[i]); readln; end. |
26.02.2012, 20:29 | #9 (permalink) |
С# - learn or die
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
|
Спасибо большое за помощь!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|