Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2015 20:12:49

SashaBeth
Зарегистрирован: 2015-09-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите решить

Натуральне число із n цифр називається числом Армстронга, якщо сума його цифр, піднесена
до n–го степеня, дорівнює самому числу (наприклад, 153=13+53+33
). Скласти програму, яка
перевіряє, чи є дане дво або тризначне число k числом Армстронга.

Офлайн

#2 Сен. 30, 2015 20:17:47

SashaBeth
Зарегистрирован: 2015-09-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите решить

Натурально число из N цифр называется числом Армстронга, если сума его цифр, поднесенная в n-го степеня, равно самому числу (пример …). создать программу, которая проверяет, есть-ли данное число дво или трехзначное число K числом Армстронга.

Офлайн

#3 Сен. 30, 2015 20:40:41

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

помогите решить

def is_armstrong_number(n):
    return n in [153, 370, 371, 407]

Офлайн

#4 Сен. 30, 2015 20:50:56

SashaBeth
Зарегистрирован: 2015-09-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите решить

ayb
не работает. Вы точно в пайтоне писали?

Офлайн

#5 Сен. 30, 2015 22:18:45

Oleg_Sizon
Зарегистрирован: 2015-02-28
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите решить

input_number = input('input your number   ')
number_of_letters = len(input_number)
result = 0
for number in range(0,number_of_letters):
    result += int(input_number[number])**number_of_letters
if result == int(input_number):
    print('Number is armstrong')
else:
    print('Number is not armstrong')

Пайтон 3.4.3

Отредактировано Oleg_Sizon (Сен. 30, 2015 22:22:59)

Офлайн

#6 Окт. 1, 2015 18:46:16

vananabu
Зарегистрирован: 2015-07-25
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите решить

как вариант:

def is_armstrong(number):       # тип переменной number - int или str
    number = str(number)        # независимо от типа приводим number к строке
    length = len(number)        # кол-во цифр в числе
    return sum(pow(int(d), length) for d in number) == int(number)
без проверок на тип переменной number

Отредактировано vananabu (Окт. 1, 2015 18:47:39)

Офлайн

#7 Окт. 1, 2015 19:21:10

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

помогите решить

Вопрос: Я студент и мне задали задачку. Помогут ли мне на этом форуме ее решить?

Ответ: В принципе, ответ – “Помогут”. Но надо правильно подойти к вопросу.


Почему-то некоторые студенты думают, что если опубликовать условие задачи, то через некоторое время волшебным образом появляется ответ. Причем, некоторые из них не то что не вспоминают о словах вежливости, но и просто не удосуживают себя просьбой о помощи, прямо так и публикуют условия задачи, полученные от преподавателя: “Напишите программу, которая строит график функции y=sin(x)”

Как правило, решить школьную/студенческую задачку для местного специалиста проблемой не является. Именно поэтому, решать он ее не будет. Почему? Потому что спецы сидят здесь не за зарплату, а потому что ему интересно решить какую-то сложную проблему, напрячься, разобрать нюансы, придумать красивый алгоритм, найти непонятно как возникающую ошибку, приобрести новый опыт от других специалистов, которые знают то, чего не знает он. А также потому, что его собственные опыт и знания могут пригодиться тому, кто эти знания хочет получить. Подчеркну – хочет. Это важный момент. Помогать приятно. Делиться знаниями приятно. А выполнять домашнее задание за нерадивого студента, который прогулял лекции, не счел нужным прочитать конспект и не делает никаких попыток разобраться в вопросе – бессмысленно. Специалист потратит время в пустоту, так как студенту это никак на пользу не пойдет.


Так что есть два пути, которыми можно пойти. Выберите один из них.

Путь 1. “Я не знаю, не умею и знать и уметь не хочу”.
В этом случае не пишите “прошу помочь сделать задание” или “помогите”, а пишите прямо: “сделайте задание за меня”, а также озвучьте, как бы вы отблагодарили того, кто это сделает. Тогда всем будет понятно, найдется тот, кто сделает. Или не найдется, но учтите, что остальные посетители вправе оставлять свои комментарии, как бы больно они не ранили ваши искренние студенческие чувства.

Путь 2. “Я хочу разобраться и сделать это задание, но мне нужна помощь”.
Этот подход подразумевает, что помимо условия задачи, будут опубликованы реальные попытки автора что-то сделать, конкретные вопросы, по коду, функциям, алгоритмам, а также прочитан материал, который дал преподаватель и/или изучены основы языка, которые даются на первых страницах любого учебника, а так же озвучен размер вознаграждения, с которым вы готовы расстаться в случае помощу. А на ответы “вам поможет функция Split”, вы не будете немедленно задавать вопрос “а что это такое?”, а сначала почитаете Help по данной функции или материалы по ее использованию, во множестве доступные в Интернете. В данном случае вам скорее всего помогут, причём бесплатно.


P.S. Если вы учитесь в учебном заведении, вас же никто туда насильно не затаскивал. Вы платите за получение знаний или даже получаете стипендию от государства, так получайте же эти знания, иначе зачем учиться на такой специальности. Можно податься в строители, слесари, швеи, водители. Там никто программирование учить не заставляет. А если пришли учиться именно на такую специальность – будьте любезны соответствовать. Специалисты знают то что они знают потому, что хотели получить эти знания и мы все будем очень сильно расстроены, если из-за тех, кто не хочет учиться сейчас, мы получим в будущем очередной Чернобыль, СШГЭС, падение самолетов и т.п.

Успехов в учебе!


ПС: текст украден с sql.ru



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version