Эт похоже только начало семестра… простенькие задачки просят решить.
А под конец курсачи пойдут… тогда ждите.. :lol:
maxwellВот и решение задачи нарисовалось :D:
для второй задачи решений нет. Т.е. таких чисел не существует.
while (True):
raw_input("Введите число -> ")
print "Ошибка!"
def is_n_digit(N, expected_digit_count = 2):
'''
returns True if <N> is number and has exactly <digit_count> digits
'''
n = int(abs(N))
if n == 0:
real_digit_count = 1
else:
real_digit_count = 0
while (n):
real_digit_count += 1
n = n // 10
return (real_digit_count == expected_digit_count)
def first_task(n):
return (n > 0) and (is_n_digit(n, 2))
def second_task(n, expected_digit_count = 3):
if (is_n_digit(n, expected_digit_count)):
original_n = n
square_sum = 0
for x in xrange(expected_digit_count):
n, digit = divmod(n, 10)
square_sum += digit ** 2
return original_n == square_sum
else:
return False
def is_triangle(sides):
return ((sides[0] + sides[1]) > sides[2]) and \
((sides[0] + sides[2]) > sides[1]) and \
((sides[1] + sides[2]) > sides[0])
def third_task(first_triangle, second_triangle):
if (is_triangle(first_triangle) and is_triangle(second_triangle)):
# sides must be in float
tr1 = [float(x) for x in first_triangle]
tr2 = [float(x) for x in second_triangle]
# compare corresponding sides
tr1.sort()
tr2.sort()
# simplest way
return ((tr1[0] / tr2[0]) == (tr1[1] / tr2[1]) == (tr1[2] / tr2[2]))
else:
return False
def fourth_task(n, expected_digit_count = 4):
if (is_n_digit(n, expected_digit_count)):
odd_digits = 0
for x in xrange(expected_digit_count):
n, digit = divmod(n, 10)
if not digit % 2: # is odd
odd_digits = (odd_digits + 1) % 2
return odd_digits == 0
else:
return False
def fifth_task(n, expected_digit_count = 4):
if (is_n_digit(n, expected_digit_count)):
for x in xrange(expected_digit_count):
n, digit = divmod(n, 10)
if not (digit in [2,3,5,7]):
return False
return True
else:
return False
maxwellи подписал форуму смерть от наплыва студентоты.
Вот, и чай с булками допил :-)
ZubchickЯ сам студент. Правда преподаю уже 4-ре года, но сути это не меняет.maxwellи подписал форуму смерть от наплыва студентоты.
Вот, и чай с булками допил :-)
def is_n_digit(N, expected_digit_count = 2):
'''
returns True if <N> is number and has exactly <expected_digit_count> digits
'''
n = int(abs(N))
range_min = 10 ** (expected_digit_count - 1) - 1
range_max = 10 ** (expected_digit_count)
return (n > range_min) and (n < range_max)
NikasasТолько чтобы разобраться, надо почитать.
к 3 и 4 хотябы покажите код пожалуйста! я вообще не знаю питона. только начал изучать а задания через день надо сдать. я потом разберусь, прочитаю, уже книгу скачал по языку ,просто время…
def is_n_digit(N, expected_digit_count):
return N>=0 and len(str(int(N))) == expected_digit_count
def task1(N):
return is_n_digit(N, 2)
def task2(N):
return False
def is_triangle(*T):
return 2*max(T) < sum(T)
def task3( A, B ):
""" Возвращаем None, если один из "треугольников" невозможен """
if is_triangle(A) and is_triangle(B):
return max(A)*min(B) - min(A)*max(B) == 0 == sum(A)*min(B) - sum(B)*min(A)
def task4(N):
return is_n_digit(N,4) and sum(ord(i) for i in str(N))&1 == 0
def task5(n):
return is_n_digit(N,4) and all( i in '2357' for i in str(N))