Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

числа Армстронга, найти ошибку в программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упаковка http://www.cyberforum.ru/cpp-beginners/thread228479.html
Решить задачу упаковки, если числа массива могут принимать следующие значения: 0, 1, 2, 3; Пусть по условию задачи известно, что числа массива находятся в диапазоне от 0 до 3, т. е. каждое число...
C++ Посмотрите код Всем доброго времени суток. Вот написал програмку, которая считает сумму элементов массива. Помогите написать её через svitch.Заранее спасибо. #include <iostream> #include <conio.h> using... http://www.cyberforum.ru/cpp-beginners/thread228478.html
Слова-анаграммы C++
Для заданного с клавиатуры слова построить все его анаграммы, т.е. слова (возможно бессмысленные), состоящие из всех букв исходного слова, но расположенных в произвольном порядке. Хотя бы...
C++ Строка матрицы с наименьшей суммой элементов.
Подскажите как в С++ найти строку матрицы с минимальной суммой элементов и вычеркнуть ее?
C++ Реализация стека http://www.cyberforum.ru/cpp-beginners/thread228470.html
вот такие ошибки при реализации: stack.h(26) : error C2953: 'Stack' : class template has already been defined liststack.h(10) : error C2955: 'Stack' : use of class template requires template...
C++ 2D Game Вот корявая, но "сделанная" (помогали) ИГРА! И движок (по урокам) скинул. http://www.cyberforum.ru/attachment.php?attachmentid=58377&stc=1&d=1294935054 ... подробнее

Показать сообщение отдельно
maks_IQ
21 / 21 / 0
Регистрация: 05.01.2011
Сообщений: 173

числа Армстронга, найти ошибку в программе - C++

13.01.2011, 20:48. Просмотров 838. Ответов 2
Метки (Все метки)

Задание следующее:
Найти числа Армстронга до опр. числа, введенного пользователем. (Числа Армстронга - числа с количеством цифр n, сумма цифр возведенных в n степень которых равна самому числу.
Например 153 - число Армстронга, т.к. 1³ + 5³ + 3³ = 153)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int main()
{
    setlocale(LC_ALL,"rus");
    double massiv[10000]; int step=0; int m=1; int glav=0; int glav1=0;
    int n=0;
    cout<<"Введите значение, до которого нужно найти числа Армстронга\n";
    cin>>n;
 
    for (int i=0;i<n;i++)
    {
        step=0; double a=0;
        massiv[i]=i+1; a=massiv[i];
        while(a>=1)
        {
            a/=10;
            step++;
        }
        for (int j=1;j<step;j++)
        {
            glav=glav+glav1;
 
        glav1=pow((double(int((massiv[i]/(10*m)-int(massiv[i]/(10*m))*10)))),double(step)); // тут конечно все запутано, но [I][U]вроде[/U][/I] правильно
            m*=10;
        }
        if (glav==massiv[i])
        {cout<<massiv[i];}
    }
    _getch();
    return EXIT_SUCCESS;
}
попробовал выполнить, но программа не работает. Вернее, работает, но не так как нужно:
она выводит 81, хотя это не число армстронга.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru