Форум » Обработка целых чисел » ege 17 №66 Не сходится ответ. » Ответить

ege 17 №66 Не сходится ответ.

Макаренко Р.Ю.: Решил задачу двумя способами: var x,i,k7,k,mx:integer; begin k:=0;mx:=0; for i:=333666 to 666999 do begin x:=i; k7:=0; while x>0 do begin if (x mod 10) = 7 then k7:=k7+1; x:=x div 10; end; if (k7=2) and (i mod 17 = 0) then begin k:=k+1; if i>mx then mx:=i; end; end; print (k,mx); end. var i, mx, k, j, k_7: integer; s: string; begin k := 0; mx := 0; for i := 333666 to 666999 do begin s := IntToStr(i); k_7 := 0; for j:=1 to Length(s) do if s[j]='7' then k_7+=1; if (k_7 = 2) and (i mod 17 = 0) then begin k := k + 1; if i > mx then mx := i; end; end; print(k, mx); end. В ответе выдает 1380 666774. Максимальное сходится с ответами, а количество - ни в какую.. В чем ошибка??

Ответов - 2

EugeneJobs: Добрый день. Формулировки "есть 2 цифры 7" и "есть РОВНО 2 цифры 7" разные. В вашем решении, например, не учитывается число 447777, в котором 2 цифры 7 есть.

Макаренко Р.Ю.: Спасибо, Евгений )) Ждал подвоха в ваших задачах и такой простой не увидел... )))



полная версия страницы