• напишите пожалуйста программу С++ Упражнение : числительные (по возможности используйте только циклы и функции)В заданном диапазоне 10...N найти и вывести на экран: 1) числа, содержащие один нольнапример, N=200 ---> 10, 20, 30, 40, 50, 60, 70, 80, 90..........2) числа, квадратные обозначения которых заканчиваются одной и той же цифройнапример, N=100 ---> 25(25*25=125) , 76(76*76=5776)3) числа Армстронга (n-значное число является числом Армстронга, если сумма его цифр, возведенных в степень n, равна собственному значению)например, N=1000 ---> 153; 371; 370; 407 и т.д.4) палиндромные числа, которые при возведении в квадрат также дают палиндромынапример, N=100 ---> 11(11*11=121) и т.д.

Ответы 1

  • #include <iostream>

    #include <cmath>

    using namespace std;

    // Функция, которая проверяет, содержит ли число n цифру 0

    bool containsZero(int n) {

    while (n > 0) {

    if (n % 10 == 0) {

    return true;

    }

    n /= 10;

    }

    return false;

    }

    // Функция, которая проверяет, заканчивается ли квадрат числа n на цифру d

    bool endsWith(int n, int d) {

    int sq = n * n;

    return sq % 10 == d || (sq / 10) % 10 == d;

    }

    // Функция, которая возвращает сумму цифр числа n, возведенных в степень p

    int digitPowerSum(int n, int p) {

    int sum = 0;

    while (n > 0) {

    int digit = n % 10;

    sum += pow(digit, p);

    n /= 10;

    }

    return sum;

    }

    // Функция, которая проверяет, является ли число n числом Армстронга

    bool isArmstrong(int n) {

    int p = log10(n) + 1; // количество цифр в числе n

    return n == digitPowerSum(n, p);

    }

    // Функция, которая проверяет, является ли число n палиндромом

    bool isPalindrome(int n) {

    int rev = 0, orig = n;

    while (n > 0) {

    rev = rev * 10 + n % 10;

    n /= 10;

    }

    return orig == rev;

    }

    // Функция, которая проверяет, является ли число n палиндромом и его квадрат также палиндром

    bool isPalindromeSquare(int n) {

    int sq = n * n;

    return isPalindrome(n) && isPalindrome(sq);

    }

    int main() {

    int n;

    cout << "Введите верхнюю границу диапазона: ";

    cin >> n;

    cout << "Числа, содержащие один ноль: ";

    for (int i = 10; i <= n; i++) {

    if (containsZero(i)) {

    cout << i << " ";

    }

    }

    cout << endl;

    cout << "Числа, квадратные обозначения которых заканчиваются одной и той же цифрой: ";

    for (int i = 1; i <= 9; i++) {

    for (int j = 1; j * j <= n; j++) {

    if (endsWith(j, i)) {

    cout << j << " ";

    }

    }

    }

    cout << endl;

    cout << "Числа Армстронга: ";

    for (int i = 1; i <= n; i++) {

    if (isArmstrong(i)) {

    cout << i << " ";

    }

    }

    cout << endl;

    cout << "Палиндромные числа, которые при возведении в квадрат также дают палиндром

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years