Среда, 24 Апреля 2024, 23:50

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Числа Армстронга
Числа Армстронга
RamilyanamanaДата: Суббота, 11 Октября 2014, 15:46 | Сообщение # 1
Биззи Джей Ужасный
Сейчас нет на сайте
Дали нам, значится, вот такую задачу: Натуральное число n, называется числом Армстронга если это число равно сумме цифр, из которых состоит это число, каждое из которых возведено в степень, равную количеству этих цифр. Пример: 153=1^3+5^3+3^3. Нужно написать программу, которая будет вычислять все двух- и трех-значные числа Армстронга. Помогите пожалуйста)) Мне уже ничего в голову не приходит. Пробовал и в массиве работать и без него. Не выходит и все тут. Ах да, программа должна быть написана на Borland C++. Заранее спасибо)


goldsphereДата: Суббота, 11 Октября 2014, 17:56 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Код

for(int i=100;i<=999;++i)
   if((i/100)*(i/100)*(i/100) + ((i%100)/10)*((i%100)/10)*((i%100)/10) + (i%10)*(i%10)*(i%10) == i)
    cout<<i<<endl;
    
  for(int i=10;i<=99;++i)
   if((i/10)*(i/10) + (i%10)*(i%10) == i)
    cout<<i<<endl;

Получается, что двухзначных чисел армстронга нет, поэтому можно второй цикл просто убрать.


FinderX - Android Аркада
RamilyanamanaДата: Воскресенье, 12 Октября 2014, 02:31 | Сообщение # 3
Биззи Джей Ужасный
Сейчас нет на сайте
ну я лучше оставлю его. а то еще докопается на этот счет. просто на экране выведу, что нет таких


-l33t-h4xx-Дата: Воскресенье, 12 Октября 2014, 17:54 | Сообщение # 4
участник
Сейчас нет на сайте
В более общем виде.
Моя вычисляет ещё и четырёхзначные.
Код
#include <iostream>
#include <cmath>
using namespace std;

int decimalLength (int n)
{
    int l = 0;
    while (n)
    {
     n /= 10;
     l++;
    }
    return l;
}

// Название случайное
int armstrongWeight (int n)
{
    int l = decimalLength(n);
    int sum = 0;

    while (n)
    {
     sum += pow(n%10, l);
     n /= 10;
    }

    return sum;
}

int main (int argc, char *argv[])
{
    for (int i = 100; i < 10000; i++)
    {
     if (i == armstrongWeight(i))
     {
      cout << i << endl;
     }
    }
}


Как правильно задавать вопросы

Сообщение отредактировал -l33t-h4xx- - Воскресенье, 12 Октября 2014, 17:59
RamilyanamanaДата: Вторник, 14 Октября 2014, 08:07 | Сообщение # 5
Биззи Джей Ужасный
Сейчас нет на сайте
goldsphere, Сегодня принес код. На что препод ответила, что число Армстронга вычисляется не так. Я ей открыл википедию и ткнул носом в формулу. В ответ на это она принесла задачник, в котором было это задание, и сказала, что это число нужно вычислять по формуле вида: 512=(5+1+2)^3, а не 153=1^3+5^3+3^3. И вот теперь прошу рассудить, кто же прав? Она говорит, что все кто ей приносил эту задачу в программе выводили 2 числа: 512 и 81, а не как в вашем коде: 153, 370, 371 и 407.


goldsphereДата: Вторник, 14 Октября 2014, 08:39 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Возможно эти все задачником и пользовались, я лишь основывался на информации от вас и вики. А там именно те 4 числа, что выдаёт мой код.

FinderX - Android Аркада
OpenGOOДата: Вторник, 14 Октября 2014, 10:31 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Цитата Ramilyanamana ()
Натуральное число n, называется числом Армстронга если это число равно сумме цифр, из которых состоит это число, каждое из которых возведено в степень, равную количеству этих цифр. Пример: 153=1^3+5^3+3^3

Т.е. было дано условие задачи как наверху, а оказалось что надо считать не так 1^3+5^3+3^3 а вот так (1+5+3)^3?


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
LertmindДата: Вторник, 14 Октября 2014, 12:44 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Ramilyanamana, конечно она не права, не трать зря время на размышления, просто сделай своему преподу-неудачнику что она хочет.
RamilyanamanaДата: Вторник, 14 Октября 2014, 15:48 | Сообщение # 9
Биззи Джей Ужасный
Сейчас нет на сайте
Lertmind, так и сделал. Но неужели нельзя было почитать про это число где-нибудь в интернете, а не самой думать, как оно должно высчитываться.


Форум игроделов » Программирование » C/C++ » Числа Армстронга
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг