Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/23: Рейтинг темы: голосов - 23, средняя оценка - 4.70
заставил Бендера
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
1

Числа Армстронга. Алгоритм.

01.02.2011, 10:20. Просмотров 4422. Ответов 3
Метки нет (Все метки)

Получить все числа Армстронга, состоящие из трех или четырех цифр (указание:
натуральное число из n цифр называется числом Армстронга если сумма возведенных
в n-ую степень его цифр равна самому числу).
Пример:1³ + 5³ + 3³ = 153.
Точно знаю, что состоящих из трех цифр бывают только четыре числа
(153 = 1^3 + 5^3 + 3^3
370 = 3^3 + 7^3 + 0^3
371 = 3^3 + 7^3 + 1^3
и 407 = 4^3 + 0^3 + 7^3)

Осталось только это доказать програмно, а также посчитать для 4 цифр

По условию: массивы, множества и строки использовать нельзя!
Подскажите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2011, 10:20
Ответы с готовыми решениями:

Числа Армстронга. Алгоритм находит не все числа
Написал алгоритм поиска чисел Армстронга. Однако столкнулся со странной (на мой взгляд) проблемой:...

Числа Армстронга
помогите написать в си#

Числа Армстронга
Не понимаю почему не работает, помогите пожалуйста. Натуральное число из n цифр является числом...

Числа Армстронга
смотри фото,помогите написать прогу в си ++

3
98 / 98 / 29
Регистрация: 26.12.2010
Сообщений: 220
01.02.2011, 10:24 2
Возводишь в степень три числа, складываешь их, а потом смотришь по остаткам деления на 10-если сходятся с твоими числами-получил нужную последовательность..)
0
заставил Бендера
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
01.02.2011, 10:29  [ТС] 3
Нашел нужную програмулину.. помогите с комментариями.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
 
//---------------------------------------------------------------------------
 
__int64 powi(__int64 Value, int Degree)
{
        if(!Degree)
                return 1;
 
        __int64 Result=Value;
        for(int i=1;i<Degree;i++)
                Result*=Value;
        return Result;
}
 
int main(int argc, char* argv[])
{
 
        int n;
        char StrValue[255];
        cout<<"Enter n: ";
        cin>>n;
        __int64 MAX_VALUE = powi(10,n);
        __int64 Armstrong;
        __int64 OldArmstrong=-1;
 
        for(__int64 i=1;i<MAX_VALUE;i++)
        {
 
                __int64 TempValue=i;
                _i64toa(TempValue,StrValue,10);
                for(int j=0;j<=n;j++)
                {
                        Armstrong=0;
                        for(int k=0;k<strlen(StrValue);k++)
                                Armstrong+=powi((__int64)StrValue[k]-'0',j);
                        if(Armstrong==TempValue&&Armstrong!=OldArmstrong)
                        {
                                cout<<Armstrong<<"\n";
                                OldArmstrong=Armstrong;
                        }
                }
        }
        cout<<"Press any key to exit...";
        getch();
 
        return 0;
}

много не понятного, например "__int64 powi"...
0
Эксперт C
24544 / 15167 / 3207
Регистрация: 24.12.2010
Сообщений: 32,538
01.02.2011, 11:17 4
много не понятного, например "__int64 powi"...
Это просто определение функции, возвращающей 64-разрядный целый результат.
При твоих ограничениях (4 цифры) можно всюду заменить __int64 на просто int
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2011, 11:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Числа Армстронга
Натуральное число из n цифр называется числом Армстронга, если сумма его цифр, возведенная в...

Числа армстронга
Подскажите где ошибка, результат выдает не верный. Подскажите пжл где не верно. #include...

Числа* Армстронга
Помогите, пожалуйста Натуральное число называется числом Армстронга, если сумма цифр числа,...

числа Армстронга
Помогите пожалуйста с написанием кода Среди чисел от 1 до 1000 найти все числа Армстронга. Число...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.