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

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

Восстановить пароль Регистрация
 
Alex-One
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 52
22.02.2014, 05:29     Число армстронга #1
Помогите составить программу, простым языком. Число армстронга из 3 цифр, в С++. Если можно то с пояснениями. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 05:29     Число армстронга
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
22.02.2014, 06:05     Число армстронга #2
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int getStepen(int number, int stepen){
    int result = number;
 
    for(int i=1; i<stepen;i++)
        result = result * number;
 
    return result;
}
void main(){
    //Самовлюблённое число, или совершенный цифровой инвариант или число Армстронга — натуральное число,
    //которое в данной системе счисления равно сумме своих цифр, возведённых в степень, равную 
    //количеству его цифр.
 
    for(int i =10;i<1000;i++) // ищим число Армстронга в диапазоне от 10 до 1000, по определению "сумме своих цифр" тобишь их уже 2 как минимум
    {
        int num[3] = {-1, -1, -1}; // в этом диапазоне числа могут быть максимум трёхзначные - создаём массив с 3 элементами
        // -1 чтобы было явно что ячейка пуста, так как 0 это тоже цыфра
 
        int temp_i = i;
        int g = 0;
        while(temp_i)
        {
            num[g] = temp_i % 10; // в 1 ячейку массива записывается последняя цифра проверяемого числа
            temp_i /= 10; // стираем последнюю цифру
            g++;
        }
        int y;
        switch(g) // в переменой g сейчас количество цифр в проверяемом числе
        {
            case 2: y = getStepen(num[0],g) + getStepen(num[1],g); break;
            case 3: y = getStepen(num[0],g) + getStepen(num[1],g) + getStepen(num[2],g); break;
        }
        if(i == y)
            cout << "This number " << i << " is number of Armstrong!!" << endl;
    }
 
 
 
 
 
 
 
}
Yandex
Объявления
22.02.2014, 06:05     Число армстронга
Ответ Создать тему
Опции темы

Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru