Вопрос задан 29.07.2023 в 12:57. Предмет Информатика. Спрашивает Захаров Виталий.

Как найти числа армстронга от нуля до заданного числа на С++ (желательно используя простые

функции из обычных библиотек типа iostream, stdio.h, math.h)?
0 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;
}
0 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; }

В этом коде у нас есть три функции:

  1. countDigits(int number) - функция, которая считает количество цифр в числе.
  2. isArmstrong(int number) - функция, которая проверяет, является ли данное число числом Армстронга.
  3. findArmstrongNumbers(int limit) - функция, которая находит и выводит числа Армстронга от 0 до заданного числа limit.

Основная логика здесь заключается в использовании циклов и арифметических операций, а стандартные библиотеки iostream и cmath используются для ввода-вывода и возведения в степень, соответственно.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос