Предмет: Информатика, автор: dlqvis

напишите пожалуйста программу С++

Упражнение : числительные (по возможности используйте только циклы и функции)

В заданном диапазоне 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) и т.д.

Ответы

Автор ответа: Maksarchi9
2

#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 << "Палиндромные числа, которые при возведении в квадрат также дают палиндром

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