дано пятизначное число. Необходимо найти сумму цифр в числе, являющихся четными. Если четных цифр в числе нет, вывести на экран "-1". Опишите математическую модель решения задачи. Составьте блок - схему алгоритма. Напишите программный код !
Переведите числа в шестнадцатиричную, разбивая число справа налево по четыре бита (в шестнадцатиричной меньше вычислений для перевода в десятичную) 11 1100 0101 = 3С5(16) 11 0011 0101 = 335(16) 3С5(16) - 335(16) = 90(16) ( С=12, 12-3=9) 90(16) = 9*16+0 =144(10) Либо можете вычитать в двоичной системе Чтобы вычесть одно число из другого в двоичной системе вычитаемое записываете в обратном коде и добавляете к нему 1 - это дополнительный код затем складываете первое число со вторым, записанным в дополнительном коде 1111000101 - первое число 1100110101 - второе 0011001010 - второе в обратном коде 0011001011 - второе в дополнительном коде
1111000101 + 0011001011
0010010000 сложение бит производим по обычному правилу 1+1 - результат = 0 и перенос в следующий разряд 1+0 - результат 1 Полученное в результате сложения число 0010010000(2) разобьем на группы по 4 бита справа налево, получим шестнадцатиричное представление 90(16)=9*16+0=144(10)
Делите последовательно на 2 и остаток от деления записываете справа налево - получаете двоичное представление числа 40(10) 40/2=20 - остаток = 0 20/2=10 - остаток = 0 10/2=5 - остаток =0 5/2 =2 , остаток = 1 2/2=1 остаток =0 1 если после последнего деления результат меньше 2 то частное записываем в представление получили биты: 101000 - это и есть двоичное представление числа 40(10) для числа 8 8/2=4 - остаток 0 4/2 =2 - остаток 0 2/2=1 двоичное представление числа 8(10) 100(2) так же вычисляете для 54(10) и 9(10) 9(10) = 8(10) + 1 = 100(2) + 1 = 101(2) 54/2=27 ->0 27/2=13 ->1 13/2=6 ->1 6/2=3 -> 0 3/2=1 -> 1 -> 1 двоичное представление числа 54(10) 110110(2) = 54(10) 110110 = 2(в пятой)+2(в четвертой) +2(во второй)+ 2(в первой) степенях =32+16+4+2=48+6=54
11 1100 0101 = 3С5(16)
11 0011 0101 = 335(16)
3С5(16) - 335(16) = 90(16) ( С=12, 12-3=9)
90(16) = 9*16+0 =144(10)
Либо можете вычитать в двоичной системе
Чтобы вычесть одно число из другого в двоичной системе вычитаемое записываете в обратном коде
и добавляете к нему 1 - это дополнительный код
затем складываете первое число со вторым, записанным в дополнительном коде
1111000101 - первое число
1100110101 - второе
0011001010 - второе в обратном коде
0011001011 - второе в дополнительном коде
1111000101
+
0011001011
0010010000
сложение бит производим по обычному правилу
1+1 - результат = 0 и перенос в следующий разряд
1+0 - результат 1
Полученное в результате сложения число
0010010000(2) разобьем на группы по 4 бита
справа налево, получим шестнадцатиричное представление 90(16)=9*16+0=144(10)
40(10) 40/2=20 - остаток = 0
20/2=10 - остаток = 0
10/2=5 - остаток =0
5/2 =2 , остаток = 1
2/2=1 остаток =0
1
если после последнего деления результат меньше 2
то частное записываем в представление
получили биты: 101000 - это и есть двоичное представление числа 40(10)
для числа 8
8/2=4 - остаток 0
4/2 =2 - остаток 0
2/2=1
двоичное представление числа 8(10) 100(2)
так же вычисляете для 54(10) и 9(10)
9(10) = 8(10) + 1 = 100(2) + 1 = 101(2)
54/2=27 ->0
27/2=13 ->1
13/2=6 ->1
6/2=3 -> 0
3/2=1 -> 1
-> 1
двоичное представление числа 54(10)
110110(2) = 54(10)
110110 = 2(в пятой)+2(в четвертой) +2(во второй)+
2(в первой) степенях =32+16+4+2=48+6=54