Форум » Обработка целых чисел » Найти сумму и количество целых чисел принадлежащих отрезку » Ответить
Найти сумму и количество целых чисел принадлежащих отрезку
Pavlova21: Найти сумму и количество целых чисел принадлежащих отрезку, в записи которых используются только нечетные цифры [pre2] count = 0 cnt = 0 k = 0 for n in range(1533, 5117): s=str(n) for x in s: if int(x)%2!=0: k += 1 if k==len(s): count+=1 cnt+=n print(count, cnt)[/pre2]
Ответов - 16, стр:
1 2 All
Pavlova21: программа находит только первое число
Поляков: Pavlova21 пишет: программа находит только первое число Попробуйте обнулить счетчик k перед началом обработки очередного числа.
Pavlova21: О да, спасибо!
Pavlova21: Подскажите, пожалуйста, как эту программу написать на Паскале?
Поляков: Pavlova21 пишет: как эту программу написать на Паскале? Что именно вам не удаётся реализовать на Паскале?
Pavlova21: Сумму не считает[pre2] var count, n, k, x, sum: integer; begin count := 0; for n := 1533 to 5117 do begin x := n; k := 1; while x >0 do begin if x mod 2 = 0 then begin k := 0; break; end; x := x div 10; end; if k = 1 then count :=count +1 ; sum:=sum+x; end; writeln (count, sum) end.[/pre2]
Поляков: Pavlova21 пишет: sum:=sum+n; Должно быть n вместо x. Ведь x вы изменили в цикле до 0.
Поляков: Pavlova21 пишет: [pre2] if k = 1 then count :=count +1 ; sum:=sum+n; [/pre2] Здесь ничего не смущает?
Pavlova21: Меняла, не помогло
Pavlova21: Выходит ответ 198 -7427
Pavlova21: поменяла тип longint; выходит ответ 198 11920125 а в ответе 587350
Pavlova21: var count, n, k, x, sum: longint; begin count := 0; for n := 1533 to 5117 do begin x := n; k := 1; while x >0 do begin if x mod 2 = 0 then begin k := 0; break; end; x := x div 10; end; if k = 1 then count :=count +1 ; sum:=sum+n; end; writeln (count,' ', sum) end.
Поляков: В Паскале отступы не говорят о том, что смещённый оператор находится внутри условного оператора или цикла. Вы забыли поставить begin-end;
Pavlova21: Смущает, но не понятно что
Pavlova21: оооо, точно! Спасибо!
полная версия страницы