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

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

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

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

01.02.2011, 10:20. Просмотров 3302. Ответов 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 цифр

По условию: массивы, множества и строки использовать нельзя!
Подскажите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 10:20     Числа Армстронга. Алгоритм.
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Merlin666
96 / 96 / 10
Регистрация: 26.12.2010
Сообщений: 220
01.02.2011, 10:24     Числа Армстронга. Алгоритм. #2
Возводишь в степень три числа, складываешь их, а потом смотришь по остаткам деления на 10-если сходятся с твоими числами-получил нужную последовательность..)
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 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"...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2011, 11:17     Числа Армстронга. Алгоритм.
Еще ссылки по теме:

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

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

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

Не выводятся все числа Армстронга - C++
Нужно вывести 4-хзначные числа Армстронга. Одно дает, другое не правильное. Должно получиться 1634, 8208, 9474 Подскажите в чем проблема....

Найти все числа Армстронга от 1 до к - C++
1)Определить, делителем каких чисел а, в, с является число к. 2)Составить программу, которая печатает таблицу умножения натуральных...

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


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

Или воспользуйтесь поиском по форуму:
Байт
Эксперт C
15842 / 10169 / 1522
Регистрация: 24.12.2010
Сообщений: 19,177
01.02.2011, 11:17     Числа Армстронга. Алгоритм. #4
много не понятного, например "__int64 powi"...
Это просто определение функции, возвращающей 64-разрядный целый результат.
При твоих ограничениях (4 цифры) можно всюду заменить __int64 на просто int
Yandex
Объявления
01.02.2011, 11:17     Числа Армстронга. Алгоритм.
Ответ Создать тему
Опции темы

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