
Вопрос задан 29.07.2023 в 12:57.
Предмет Информатика.
Спрашивает Захаров Виталий.
Как найти числа армстронга от нуля до заданного числа на С++ (желательно используя простые
функции из обычных библиотек типа iostream, stdio.h, math.h)?

Ответы на вопрос

Отвечает Лисичкина Дания.
Задачу проще всего решить, уже имея набор этих чисел, а их не так много и их можно найти в интернете)
#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;
}
#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;
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Числа Армстронга (или числа Нарциста) - это такие натуральные числа, которые равны сумме своих цифр, возведенных в степень, равную количеству цифр в числе. Например, 153 - число Армстронга, потому что 1^3 + 5^3 + 3^3 = 153.
Чтобы найти числа Армстронга от нуля до заданного числа на C++, вы можете использовать следующий код:
cpp#include <iostream>
#include <cmath>
int countDigits(int number) {
int count = 0;
while (number != 0) {
number /= 10;
count++;
}
return count;
}
bool isArmstrong(int number) {
int originalNumber = number;
int numDigits = countDigits(number);
int sum = 0;
while (number != 0) {
int digit = number % 10;
sum += pow(digit, numDigits);
number /= 10;
}
return sum == originalNumber;
}
void findArmstrongNumbers(int limit) {
for (int i = 0; i <= limit; i++) {
if (isArmstrong(i)) {
std::cout << i << " ";
}
}
std::cout << std::endl;
}
int main() {
int n;
std::cout << "Введите число n: ";
std::cin >> n;
std::cout << "Числа Армстронга от 0 до " << n << ": ";
findArmstrongNumbers(n);
return 0;
}
В этом коде у нас есть три функции:
countDigits(int number)
- функция, которая считает количество цифр в числе.isArmstrong(int number)
- функция, которая проверяет, является ли данное число числом Армстронга.findArmstrongNumbers(int limit)
- функция, которая находит и выводит числа Армстронга от 0 до заданного числаlimit
.
Основная логика здесь заключается в использовании циклов и арифметических операций, а стандартные библиотеки iostream
и cmath
используются для ввода-вывода и возведения в степень, соответственно.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 566

Информатика 25

Информатика 22

Информатика 27

Информатика 34

Информатика 58

Информатика 63

Информатика 23
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili