Напишите программу на python, чтобы найти сумму первых 200 чисел - PullRequest
0 голосов
/ 20 марта 2020

Я только начал изучать python, и у меня есть задача представить в качестве домашнего задания. Я должен написать программу, которая распечатывает сумму первых 200 чисел. Номера Jumpy - это числа, цифры которых не увеличиваются и не уменьшаются. например 101, 102, 103, 104 .... в отличие от увеличивающихся чисел, таких как 2347, 378, 459 и убывающих чисел 975, 854, 741. Из всего, что я знаю, я написал это, но я не могу понять, как сделай все остальное Пожалуйста, помогите ...

#python program to find the sum of first 200 jumpy numbers
minimum = int(input(" Please Enter the Minimum Value : "))
maximum = int(input(" Please Enter the Maximum Value : "))
total = 0

for number in range(minimum, maximum+1):
    if(number[2] == 1):

       print("{0}".format(number))
       total = total + number

print("The Sum of Jumpy Numbers from {0} to {1} = {2}".format(minimum, number, total))

Ответы [ 3 ]

1 голос
/ 20 марта 2020

Гокуль ответ очень хороший, однако, если вы не профессиональный кодер (я тоже), то я написал эту более простую версию, но гораздо дольше.

#python program to find the sum of first 200 jumpy numbers
minimum = int(input(" Please Enter the Minimum Value : "))
maximum = int(input(" Please Enter the Maximum Value : "))
total = 0

def isJumpy(x):
    increasing, decreasing = True,True
    x = [int(x) for x in str(x)]
    x = list(map(int,x))
    for n in range(len(x)-1):
        if int(x[n]) > int(x[n+1]):
            pass
        else:
            increasing = False
        if int(x[n]) < int(x[n+1]):
            pass
        else:
            decreasing = False

    if increasing == False or decreasing == False:
        return True
    else:
        return False






for i in range(minimum,maximum+1):
    if isJumpy(i):
        total += i

print("The Sum of Jumpy Numbers from {0} to {1} = {2}".format(minimum, maximum, total))

Если у вас есть какие-либо вопросы или неправильный код, пожалуйста, дайте мне знать. Между прочим, это было маленькое забавное испытание :)

0 голосов
/ 20 марта 2020

def is_jumpy (n):
   num_list = [int (x) for x in str (n)]
   goes_up = goes_down = False
   for index in range (1, len (num_list)):
      if (num_list[index-1] < num_list[index]):
         goes_up = True
      elif (num_list[index-1] > num_list[index]):
         goes_down = True
      if (goes_up and goes_down):
         return True
   return False

sum=0
for i in range (min,max):
   if (is_bouncy (i)):
      sum += i
print(f'the sum of the jumpy numbers between{min} and {max} is {sum}')
0 голосов
/ 20 марта 2020
min = 1
max = 100
f=lambda n,i=1:n and-~f(n-g(i),i+1)
g=lambda i:i<10or i%100%11%9==g(i/10)>0
values = [i for i in range(min,max) if g(i)]
print values
print sum(values)

g (i) проверяет число прыжков или нет

Используйте свои собственные минимальные и максимальные значения. лямбда-функции используются для меньших выражений.

lambda arguments : expression

sum () - встроенная функция python.

Получила помощь от answer

...