Форум сайта python.su
0
Суть проблемы такова: в результате выполнения программы получаем строковую переменную в виде некого числа(длина числа может быть разной).Как реализовать сложение по 2 цифры из этого числа, пока не останется одна цифра. Для примера:
12345678 #наше число
371115 #первый результат сложения по две цифры с лева на право
1026
18
9 # полученный результат, которого нужно добиться
Как?
Офлайн
7
Нужно написать программу.
Офлайн
0
IsemКакую программу? Программа которая делает это число я написал, теперь мне надо сложить число именно так как я описал. На этом ступор
Нужно написать программу.
Офлайн
n = str(12345678)
while len(n) > 1:
res = ""
for i in xrange(0, len(n), 2):
res = res + str(int(n[i]) + int(n[i+1]))
n = res
print res
Офлайн
0
1. Ну как звучит все равно =)
2. По поводу раздела извиняйте, не знал.
3. А какая разница четное число или нет?
23245 #вот не четное
565
115
25
7
Офлайн
x = str(23245)
def f(n):
n, last = str(n), ""
print n
if len(n) % 2 == 1:
last = n[-1]
n = n[:-1]
while len(n) > 1:
res = ""
for i in xrange(0, len(n), 2):
res = res + str(int(n[i]) + int(n[i+1]))
n = res
print res + last
if last:
print int(n) + int(last)
f(12345)
f(1234)
Офлайн
20
num = '12345678'
while 1 < len(num):
pairs = ''.join(
str(sum(map(int, pair)))
for pair in zip(num[::2], num[1::2]))
num = pairs + (len(num)%2 and num[-1] or '')
print num
num = '12345678'
while 1 < len(num):
num = str(sum(map(int, num[:2]))) + num[2:]
print num
num = '12345678'
while 1 < len(num):
num = str(sum(map(int, num)))
print num
Офлайн
0
Отлично. Спасибо, проблема решена, буду писать дальше
Офлайн