М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
ЗВЕР4ЁК
ЗВЕР4ЁК
22.11.2020 09:09 •  Информатика

Как найти числа армстронга от нуля до заданного числа на с++ (желательно используя простые функции из обычных библиотек типа iostream, stdio.h, math.h)?

👇
Ответ:
alelinahka
alelinahka
22.11.2020
Задачу проще всего решить, уже имея набор этих чисел, а их не так много и их можно найти в интернете)

#include <iostream>
#include <vector>

using namespace std;
int main() {   
vector <long long int> armstrong = {1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153, 4679307774};   
long long int n;   
int l = armstrong.size();   
cin >> n;
for (int i = 0; i < l && armstrong[i] <= n; ++i)
    cout << armstrong[i] << '\n';   
return 0;
}
4,4(81 оценок)
Открыть все ответы
Ответ:
dudulya1
dudulya1
22.11.2020
Приоритете операций:
! инверсия значения
& побитовое И 
^ исключающее ИЛИ
| побитовое ИЛИ

13(10)=00001101(2)
14(10)=00001110(2)
17(10)=00010001(2)
19(10)=00010011(2)
22(10)=00010110(2)

19 & 17 = 00010011 & 00010001 = 00010001
19 & !17 = 00010011 & 11101110 = 00000010
(19 & 17 | 19 & !17) = 00010001 | 00000010 = 00010011

!19 & 17 = 11101100 & 00010001 = 00000000
(19 & 17 | !19 & 17) = 00010001 | 00000000 = 00010001
17 & 14 = 00010001 & 00001110 = 00000000
(17 & 14 | (19 & 17 | !19 & 17)) = 00000000 | 00010001 = 00010001

22 & 14 = 00010110 & 00001110 = 00000110
(22 | 22 & 14) = 00010110 | 00000110 = 00010110

(17 & 14 | (19 & 17 | !19 & 17)) & (22 | 22 & 14) = 00010001 & 00010110 = 00010000

14^(19 & 17 | 19 & !17) = 00001110 ^ 00010011 = 00011101
14^(19 & 17 | 19 & !17) ^ 13 = 00011101 ^ 00001101 = 00010000

(17 & 14 | (19 & 17 | !19 & 17)) & (22 | 22 & 14) ^ 13 = 00010000 ^ 00001101 = 00011101

14^(19 & 17 | 19 & !17) ^ 13 | (17 & 14 | (19 & 17 | !19 & 17)) & (22 | 22 & 14) ^ 13 =
00010000 | 00011101 = 00011101
00011101(2) = 16+8+4+1 = 29(10)
4,4(47 оценок)
Ответ:
KaterinaaA2003
KaterinaaA2003
22.11.2020
Приоритете операций:
! инверсия значения
& побитовое И 
^ исключающее ИЛИ
| побитовое ИЛИ

13(10)=00001101(2)
14(10)=00001110(2)
17(10)=00010001(2)
19(10)=00010011(2)
22(10)=00010110(2)

19 & 17 = 00010011 & 00010001 = 00010001
19 & !17 = 00010011 & 11101110 = 00000010
(19 & 17 | 19 & !17) = 00010001 | 00000010 = 00010011

!19 & 17 = 11101100 & 00010001 = 00000000
(19 & 17 | !19 & 17) = 00010001 | 00000000 = 00010001
17 & 14 = 00010001 & 00001110 = 00000000
(17 & 14 | (19 & 17 | !19 & 17)) = 00000000 | 00010001 = 00010001

22 & 14 = 00010110 & 00001110 = 00000110
(22 | 22 & 14) = 00010110 | 00000110 = 00010110

(17 & 14 | (19 & 17 | !19 & 17)) & (22 | 22 & 14) = 00010001 & 00010110 = 00010000

14^(19 & 17 | 19 & !17) = 00001110 ^ 00010011 = 00011101
14^(19 & 17 | 19 & !17) ^ 13 = 00011101 ^ 00001101 = 00010000

(17 & 14 | (19 & 17 | !19 & 17)) & (22 | 22 & 14) ^ 13 = 00010000 ^ 00001101 = 00011101

14^(19 & 17 | 19 & !17) ^ 13 | (17 & 14 | (19 & 17 | !19 & 17)) & (22 | 22 & 14) ^ 13 =
00010000 | 00011101 = 00011101
00011101(2) = 16+8+4+1 = 29(10)
4,6(78 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ