Int arm(int d)
{
int count = 0;
for (int i = 0; d > 0; i++) {
d /= 10;
count = count+1;
}
int sum = 0;
for (int i = 0; d > 0; i++) {
int g = pow((d % 10), count);
d = d / 10;
sum = sum + g;
}
return sum;
}
C/C++
Есть программа подсчета числа армстронга. И она выдает нули где ошибка?
ты в первом цикле сократил d до нуля, поэтому условия второго цикла не выполняются
Попробуй так:
int arm(int d)
{
int f = d;
int count = 0;
for (int i = 0; f > 0; i++) {
f /= 10;
count = count+1;
}
int sum = 0;
for (int i = 0; d > 0; i++) {
int g = pow((d % 10), count);
d = d / 10;
sum = sum + g;
}
return sum;
}
Попробуй так:
int arm(int d)
{
int f = d;
int count = 0;
for (int i = 0; f > 0; i++) {
f /= 10;
count = count+1;
}
int sum = 0;
for (int i = 0; d > 0; i++) {
int g = pow((d % 10), count);
d = d / 10;
sum = sum + g;
}
return sum;
}
Ну что -сверим результаты? Я в лоб решала, безо всяких хитрых алгоритмов:
#include <iostream>
#include <cmath>
using namespace std; int main()
{ unsigned long long a = 1, b = 10, i, n, s, d;
for (d = 1; d < 10; d++) { cout << d << ": ";
for (i = a; i < b; i++) { n = i; s = 0; while (n)
{ s += n % 10; n /= 10; } if (pow(s, d) == i)
cout << i << ' '; } a *= 10; b *= 10;
cout << endl; } }
В десятичной системе до всех девятизначных чисел включительно:

#include <iostream>
#include <cmath>
using namespace std; int main()
{ unsigned long long a = 1, b = 10, i, n, s, d;
for (d = 1; d < 10; d++) { cout << d << ": ";
for (i = a; i < b; i++) { n = i; s = 0; while (n)
{ s += n % 10; n /= 10; } if (pow(s, d) == i)
cout << i << ' '; } a *= 10; b *= 10;
cout << endl; } }
В десятичной системе до всех девятизначных чисел включительно:

а я в проверку на самовлюбленность они же числа Армстронга ввел число из многих 9.
и прога начала ругаться.
и прога начала ругаться.
Похожие вопросы
- Дана непустая последовательность целых чисел, среди которых есть два нуля. Найти сумму чисел, расположенных между ними.
- Программирование на СИ "Написать программу подсчёта суммы нечётных элементов из 20 введенных"
- Пытаюсь реализовать шаблонные классы деревьев. Выдает кучу непонятных ошибок
- Почему данная программа после всех вычислений в консоли выдает в итоге "о"?
- Си. Программа выдаёт ошибку
- Программа выдает ошибку c++
- С++ Максимум трёх чисел Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число
- С ++: Количество нулей и среднее арифмитическое последовательности чисел
- Выдаёт ошибку в коде.Помогите
- Программа не выполняет условия задания, исходный массив меняет сам себя, помогите найти ошибку