mrpetrov289
30.06.2020 07:07

Цикл While, Паскаль, Найти сумму четных цифр числа

Составить таблицу значений функции y = 5 - x2/2 на отрезке [-5; 5] с шагом 0,5.

Написать программу, подсчитывающую количество четных и нечетных цифр в числе.

Сумма и произведение цифр числа

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
yMHNk1
19.11.2020 04:42

# -*- coding: cp1251 -*-

def test_prg(num) :

   cnt = 0

   while (num > 0) :

       sum_num = 0

       for ch_num in str(num) :

           sum_num = sum_num + int(ch_num, 10)  

       num = num - sum_num

       cnt += 1

   return cnt

def task(number) :

   sf_print = "Заданное число = %d, ОТВЕТ: %d"

   print (sf_print%(number, test_prg(number)))

def main() :

   usr_number = 24

   task(usr_number)

if __name__ == '__main__' :

   main()

Объяснение:

Для проверки сделаем следующее:

usr_number = 24;

24 - (2 + 4) = 18  | 1

18 - (1 + 8) = 9     | 2

9 - 9 = 0             | 3

ответ: Необхідно виконати 3 (три) дії.

*Писал на 2.7.10, но и на 3 Питоне должно заработать, удачи!


Python З заданого числа відняли суму його цифр. З результату знову відняли суму його цифр і т. Д. Че
Python З заданого числа відняли суму його цифр. З результату знову відняли суму його цифр і т. Д. Че
0,0(0 оценок)
Ответ:
Amigo222288
24.06.2020 13:57

(см. объяснение)

Объяснение:

Ниже показано решение на различных языках программирования + аналитический метод.

Java:

System.out.println(BigInteger.valueOf(2).pow(102).add(BigInteger.valueOf(2).pow(100)).add(BigInteger.valueOf(2).pow(85)).add(BigInteger.valueOf(2).pow(17)).toString(8));

Pascal:

##

var res: BigInteger := BigInteger.Add(BigInteger.Add(BigInteger.Add(BigInteger.Pow(BigInteger.Parse('2'),102),BigInteger.Pow(BigInteger.Parse('2'),100)),BigInteger.Pow(BigInteger.Parse('2'),85)),BigInteger.Pow(BigInteger.Parse('2'),17));

 var s: string := '';

 while(not res.IsZero) do

 begin

   s:= BigInteger.Remainder(res,8).ToString+s;

   res:= BigInteger.Divide(res,BigInteger.Parse('8'));

 end;

 writeln(s);

Python:

a = 2**102+2**100+2**85+2**17

s = ''

while(a>0):

   s=str(a%8)+s

   a//=8

print(s)

Аналитический метод:

Нужно представить все, как <число>*8^[степень]. Заметим, что:

2^{102} + 2^{100} + 2^{85} + 2^{17}=8^{34}+2*8^{33}+2*8^{28}+4*8^{5}

Результат полученный во всех случаях одинаковый:

12000020000000000000000000000400000

Это означает, что всего в числе встречается 4 различные цифры.

Задание выполнено!

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота