Большой Воронежский Форум
» Программирование>нужна помощь в С++!!!
Trancelover 18:19 11.01.2008
У меня есть длинное целое число, нужно преобразовать его в строку, или в числовой массив.
Подскажите что лучше сделать и как?
Заранее благодарен! [Ответ]
p51x 18:33 11.01.2008

Сообщение от Trancelover:
есть длинное целое число

насколько? целое или с запятой? влезает ли в один из типов данных? если не влезает, то как хранится (получается)?

Сообщение от Trancelover:
преобразовать его в строку

пока могу только посоветатовать почитать про ltoa, itoa и им подобные

Сообщение от Trancelover:
в числовой массив

занести поразрядно... [Ответ]
Dr.PC 18:34 11.01.2008
делишь на 10, остаток в строку записываешь, потом ещё на 10, опять записываешь, и так пока нечего будет делить.

А вообще, кажется, стандартная функция есть такая. [Ответ]
Dr.PC 18:35 11.01.2008

Сообщение от p51x:
целое или с запятой?

читай внимательнее. целое. [Ответ]
p51x 18:37 11.01.2008
ну не заметил... [Ответ]
Part!zan 20:08 11.01.2008
sprintf() рулит [Ответ]
Trancelover 20:35 11.01.2008
кстати, сам число равно 1!+2!+3!+...+100!, оно влазит хоть в один из типов? [Ответ]
Dr.PC 21:20 11.01.2008
нет
это
94269001683709979260859834124473539872070722613982 67244293835930562467822347950602340029409359913646 69866091243474326476228268700382205564423365289204 20940313
занимает 66 байт.

Вообще нужно правильные языки программирования использовать для таких задач.

Сообщение от :
def fac(x):
r=1
for a in xrange(1,x+1): r*=a
return r

def f():
return str(sum(map(fac,xrange(1,101))))

[Ответ]
Dr.PC 22:32 11.01.2008

Сообщение от :
def fac_list():
a=[1]
for x in xrange(2,101): a.append(a[-1]*x)
return a

def f2(): return str(sum(fac_list()))

так лучше - без квадрата. [Ответ]
Dr.PC 23:25 12.01.2008
а вот так ещё и пару байт оперативки сэкономим:

Сообщение от :
def fac_sm():
__a=s=1
__for x in xrange(2,101):
____a*=x
____s+=a
__return str(s)

[Ответ]
Вверх