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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
Igorek94
2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
30.10.2012, 08:25     числа Армстронга #1
Помогите пожалуйста с написанием кода
Среди чисел от 1 до 1000 найти все числа Армстронга. Число Армстронга - натуральное число, которое в данной системе счисления равно сумме своих цифр, возведённых в степень, равную количеству его цифр (например, 153=13+53+33)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 08:25     числа Армстронга
Посмотрите здесь:

Числа Армстронга. Алгоритм. C++
C++ Числа армстронга
Числа Армстронга C++
Вывести числа Армстронга от 1 до n C++
Найти все числа Армстронга от 1 до K C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.10.2012, 11:22     числа Армстронга #2
Что конкретно не понятно?
Igorek94
2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
30.10.2012, 11:23  [ТС]     числа Армстронга #3
я не могу понять как это можно описать
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.10.2012, 11:25     числа Армстронга #4
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
#include <iostream>
#include <cmath>
 
int main() 
{ 
  int figure = 0, summa = 0; 
  double n = 10; 
  int  i, a, b, st; 
 
  for ( i = 1; i < 1000; i++) 
  { 
      a = b = i; 
      while(a) 
      { 
          a /= 10; 
          figure++;
      } 
      st = pow(n, figure-1);
      while(b) 
      { 
          summa += pow((double)(b / st), figure); 
          b %= st; 
          st /= 10;
      } 
 
      if(summa == i) 
          std::cout << i << "  Armstrong number " << std::endl; 
      figure = 0; 
      summa = 0; 
  } 
}
Igorek94
2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
30.10.2012, 11:26  [ТС]     числа Армстронга #5
а если не сложно, то можно объяснить написанный код
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.10.2012, 11:31     числа Армстронга #6
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
#include <iostream>
#include <cmath>
 
int main() 
{ 
  int figure = 0, summa = 0; 
  double n = 10; 
  int  i, a, b, st; 
 
  for ( i = 1; i < 1000; i++) 
  { 
      a = b = i; 
      while(a) // считаем количество цифр в числе
      { 
          a /= 10; 
          figure++;
      } 
      st = pow(n, figure-1); // возводим 10 в степень количества цифр - 1
      while(b) // разбиваем число на цифры
      { 
          summa += pow((double)(b / st), figure); //считаем сумму
          b %= st; 
          st /= 10;
      } 
 
      if(summa == i) // если сумма равно исходному значит это число Армстронга
          std::cout << i << "  Armstrong number " << std::endl; 
      figure = 0; 
      summa = 0; 
  } 
}
смотри комментарии
Igorek94
2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
30.10.2012, 11:35  [ТС]     числа Армстронга #7
спасибо большое

Добавлено через 3 минуты
а что надо добавить в код, чтобы ответ не сразу с экрана убирался??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2012, 11:39     числа Армстронга
Еще ссылки по теме:

C++ Числа Армстронга
Числа Армстронга C++
Получить числа Армстронга C++

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

Или воспользуйтесь поиском по форуму:
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.10.2012, 11:39     числа Армстронга #8
system("Pause");
Yandex
Объявления
30.10.2012, 11:39     числа Армстронга
Ответ Создать тему
Опции темы

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