Форум » Обработка целых чисел » K4 задача 14 » Ответить

K4 задача 14

Luda: Здравствуйте, Константин Юрьевич. Не совпадает с ответом количество чисел, удовлетворяющих условию. Получается 5178. В остальных задачах ответы сходятся.

Ответов - 5 новых

Поляков: Luda пишет: Не совпадает с ответом количество чисел, удовлетворяющих условию. Получается 5178. В остальных задачах ответы сходятся. Проверил, у меня сошлось. Давайте искать ошибку. Вот "лобовое" решение:[pre2] var k, ma, i: integer; begin k := 0; ma := 0; for i:=3542 to 15876 do if (i mod 2 = 0) and (i mod 9 = 0) and (i mod 11 <> 0) and (i mod 13 <> 0) and (i mod 17 <> 0) and (i mod 23 <> 0) then begin k := k + 1; ma := i; end; writeln(k, ' ', ma); end.[/pre2]

Luda: (i mod 2 = 0) and (i mod 9 = 0) это условие пропустит числа, которые одновременно кратны 2 и 9 (18,36 ... чёт*9), а числа нечетные кратные только 9 (3*9,5*9 ... 1763*9 ... нечет*9) не подсчитываются. В задаче: "которые делятся на 2 или на 9 ", поэтому я беру условие ((i mod 2 = 0) or (i mod 9 = 0)). Это увеличивает количество подсчитываемых чисел.

Поляков: Luda пишет: я беру условие ((i mod 2 = 0) or (i mod 9 = 0)). Вы правы. Спасибо, исправлено.


aln1947: В пояснениях к теме kege3 есть подсказка для недесятичных систем счисления: "• для получения цифр в системе счисления с другим основанием нужно заменить в приведённых программах число 10 на нужно основание системы счисления", но не добавлено указание "а цикл FOR в программе на Паскале (с функцией) должен идти с восьмеричными числами от 1000 до 7777, только предварительно переведенными в десятичные, т.е. For n:=512 to 4095 do и т.д. а в функции заменить 10 на 8. При этом получим правильный ответ. Остальные задачи я не проверял, но думаю, что и с ними при этих переделках будет все в порядке. Хочу спросить у Полякова К.Ю прав ли я? Спасибо!

Поляков: aln1947 пишет: для получения цифр в системе счисления с другим основанием нужно заменить в приведённых программах число 10 на нужно основание системы счисления", но не добавлено указание "а цикл FOR в программе на Паскале (с функцией) должен идти с восьмеричными числами от 1000 до 7777 Там, где стоит этот комментарий, вообще нет речи про цикл FOR. Обсуждается лишь вопрос получения отдельных цифр числа. Никакой ошибки и неточности я не вижу.



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