КС
Ксюша Суперская

Заповнити масив різними числами Армстронга. Числом Армстронга називають натуральне n-цифрове число, сума цифр якого, під

Наталья Алешкина
Наталья Алешкина

#include
#include
using namespace std;
typedef unsigned long long ullong;
void sequence_Armstrong(ullong *, const size_t);
ullong pow_u(unsigned, unsigned);
void show_array(ullong *, const size_t);
int main() {
const size_t size = 20;
ullong arm[size] = {0};
sequence_Armstrong(arm, size);
show_array(arm, size);
cin.get();
return 0;
}
void show_array(ullong * arm, const size_t size) {
for (size_t n = 0; n < size; n++) cout << arm[n] << endl;
}
ullong pow_u(unsigned basis, unsigned indicator) {
double x = pow(double(basis), int(indicator));
if (x >= double(ULLONG_MAX)) return - 1;
ullong degree = basis;
for (unsigned n = 1; n < indicator; degree *= basis, n++);
return degree;
}
void sequence_Armstrong(ullong * arm, const size_t size) {
ullong k, sum;
unsigned pw, num;
size_t next = 0;
for (ullong n = 0; n < ULLONG_MAX; n++) {
k = n;
pw = 0;
sum = 0;
do {
k /= 10;
++pw;
} while (k > 0);
k = n;
double tmp;
ullong dx;
do {
num = k % 10;
dx = pow_u(num, pw);
tmp = double(dx) + sum;
if (tmp >= double(ULLONG_MAX)) {
cout << "Stack overflow" << endl;
sum = -1;
} else {
sum += dx;
k /= 10;
}
} while (k > 0);
if (ullong(sum) == n) arm[next++] = sum;
if (next == size) return;
}
}

ullong - переписать вручную.

Похожие вопросы
дано натуральное число n вычислить сколько цифр в числе n и чему равна сумма его цифр паскаль
задано натуральное число N. содержащее до 100 цифр. делится ли даное число на 3,6,7,9,11,12
N-натуральное число. Необходимо вывести на экран, например число "1" N раз.
Скласти програму, яка знаходить найбільше значення відношення тризначного числа до суми його цифр на С
Дано натуральное число n. Найти и вывести все числа в интервале от 1 до n -1, у которых произведение всех цифр совпадает
помогите пожалуйста в Visual basic. Дано натуральное число N! вычислить суму цифр в числе N
задано натуральное число n. Найти сумму цифр данного числа с помощью функции !!!(паскаль)
Задача Паскаль Ввести натуральное число N, заменить все четные цифры в числе на нули
определить количество цифр в представлении натурального числа N в семеричной системе
Дано трократное число, Определить: кратна ли сума его цифр числу а