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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.64
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 6
#1

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

01.02.2011, 10:20. Просмотров 3409. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 10:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Числа Армстронга. Алгоритм. (C++):

Числа Армстронга. Алгоритм находит не все числа - C++
Написал алгоритм поиска чисел Армстронга. Однако столкнулся со странной (на мой взгляд) проблемой: при компиляции с помощью MinGW...

Числа* Армстронга - C++
Помогите, пожалуйста Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N‐ную степень (где N – ...

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

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

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

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

3
Merlin666
97 / 97 / 10
Регистрация: 26.12.2010
Сообщений: 220
01.02.2011, 10:24 #2
Возводишь в степень три числа, складываешь их, а потом смотришь по остаткам деления на 10-если сходятся с твоими числами-получил нужную последовательность..)
0
IIIa66uMEM6eP
заставил Бендера
436 / 292 / 10
Регистрация: 05.12.2010
Сообщений: 1,648
Записей в блоге: 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
16545 / 10815 / 1639
Регистрация: 24.12.2010
Сообщений: 20,864
01.02.2011, 11:17 #4
много не понятного, например "__int64 powi"...
Это просто определение функции, возвращающей 64-разрядный целый результат.
При твоих ограничениях (4 цифры) можно всюду заменить __int64 на просто int
1
01.02.2011, 11:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2011, 11:17
Привет! Вот еще темы с ответами:

Числа армстронга - C++
Подскажите где ошибка, результат выдает не верный. Подскажите пжл где не верно. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Вывести числа Армстронга от 1 до n - C++
Натуральное число, в записи которого z цифр, называется числом Амстронга, если сумма его цифр, возведенная в степень z, равна самому числу....

Получить числа Армстронга - C++
Натуральное число с n цифр является числом Армстронга, если сумма его цифр, возведенных в n-й степени, равен самому числу. Получить все...

Числа Армстронга...Немогу решить - C++
Помогите, если не сложно...Натуральное число, в записи которого n цифр, называется числом Армстронга, если сумма его цифр, возведенная в...


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

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

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