Задача кодирования: преобразовать целое число в предложение.
Задача на этой неделе, как всегда, проста.
Учитывая 64-битное целое число, создайте метод, который преобразует значение в его устный эквивалент.
Например: 1,203 приведет к "тысяче, двумстам и трем"
Возможности сделать это излишне запутанным велики. Давай! ..
Что я уже пробовал:
Упрощение моей жизни.
Победителем прошлой недели стал Graeme_Grant, хотя решения excel были чертовски близки к этому. Отправьте Шону свои данные и выиграйте приз!
Patrice T
"хотя решения excel были чертовски близки."
Нажать. почти получилось :-)
Graeme_Grant
Спасибо, Крис. Надеюсь, я правильно связалась с Шоном. :)
Chris Maunder
Ты ведь все еще в Мельбурне, верно? Я буду там через неделю, если вы хотите кофе (или, может быть, что-нибудь холодное)
PIEBALDconsult
Он хочет футболку...
Graeme_Grant
Немного подвинулись... Прошло много времени с тех пор, как я в последний раз проверял свой профиль... пришло время обновить его. [редактировать] Похоже, я держал его в курсе. :)
Chris Maunder
А-а, похоже, мне придется только лениво помахать рукой, когда я пролетаю над ними по пути на юг. В следующий раз!
Graeme_Grant
:) ... мог бы бросить его на почте (GPO) в Мельбурне, когда вы здесь, и сохранить таким образом... ;)
PIEBALDconsult
Это одна из тем, которые я люблю ненавидеть.
https://www.codeproject.com/Lounge.aspx?msg=4667570
https://www.codeproject.com/script/Membership/View.aspx?mid=2587207&fid=252480&select=4878556
PIEBALDconsult
Я просмотрел код, который написал осенью 2013 года, и ему не хватает только возможности ставить запятые и "и" ; я добавлю эту функцию, но код уже занимает десять страниц и не подходит в качестве решения QA, поэтому я думаю, что Совет в порядке...
Система.Приставка.WriteLine (1203.Метод toString&ЛТ;пегий.типов.shortscale&ГТ;() ) ;
Тысяча Двести Три
Kornfeld Eliyahu Peter
Как сказать 18,446,744,073,709,551,615? Или даже 9,223,372,036,854,775,807?
Разве 64 бит-это не большой размер?
Graeme_Grant
восемнадцать квинтриллионов, четыреста сорок шесть квадриллионов, семьсот сорок четыре триллиона, семьдесят три миллиарда, семьсот девять миллионов, пятьсот пятьдесят одна тысяча, шестьсот пятнадцать
Graeme_Grant
Как насчёт:
Двадцать восемь Миллиниллионов, шестьсот тридцать восемь Нонгентиллионов, Девятьсот три Октингентиллионов, Девятьсот восемнадцать Септингентиллионов, Четыреста семьдесят четыре Сесцентиллиона, Девятьсот сорок восемь Кингентиллионов, Семьсот семьдесят один Квадрингентиллион, восемь сто пятьдесят три трецентиллиона, девятьсот дуцентиллион, семьсот восемьдесят девять нонагинтацентиллион, шестьсот октоджинтацентиллион, сто семьдесят шесть септуагинтацентиллион, восемьсот тринадцать секагинтацентиллион, триста семьдесят четыре квинквагинтацентиллион, пятьсот шестьдесят четыре квинквагинтацентиллион , шестьсот семьдесят два тригинтацентиллиона, семьсот восемьдесят семь Унвигинтициентиллион, девятьсот пять виджинтициентиллион, пятьсот сорок девять ундецициентиллионов, девятьсот пятьдесят один децициентиллион, восемьдесят семь тресентиллион, четыреста восемьдесят восемь Дуоцентиллион, одиннадцать унсентиллионов, триста восемьдесят два сентиллиона, сорок девять нонагинтиллионов, триста шестьдесят один октогинтиллион, четыреста семьдесят семь септуагинтиллионов, девятьсот семь сексагинтиллионов, четыреста тридцать два квинквагинтиллиона, четыреста шестьдесят восемь квадрагинтиллионов, семьдесят семь новентригинтиллионов , двести семьдесят пять октотригинтиллионов, девятьсот девятнадцать септентригинтиллионов, четыреста тридцать девять сестригинтиллионов, восемьдесят шесть квинкватригинтиллионов, сто сорок пять кваттуортригинтиллионов, семьсот двадцать пять трестригинтиллионов, двести шестьдесят восемь Дуотригинтиллион, пятьсот девяносто девять унтригинтиллионов, семьсот двадцать семь тригинтиллионов, пятьсот девять новемвигинтиллионов, двести шестьдесят один октовигинтиллион, шестьсот девять сентябрьвинтиллионов, пятьсот сорок пять сесвигинтиллионов, сто девяносто -один квинквавинтиллион, девятьсот тридцать четыре кваттуорвигинтиллион, триста сорок два тресвигинтиллиона, триста семьдесят шесть дуовигинтиллионов, девяносто шесть унвигинтиллионов, сто шесть виджинтиллионов, четыреста двадцать шесть ноябемдециллионов, триста двадцать семь октодециллионов, восемьсот двенадцать сентендециллионов, девятьсот девятьсот девяносто девять. двадцать шесть секдециллионов, двести шестьдесят два квиндециллионов, восемьдесят шесть кваттуордециллионов, восемьсот тридцать четыре тредециллионов, девятьсот семьдесят семь дуодециллионов, восемьдесят семь ундециллионов, восемьсот пятьдесят восемь дециллионов, шестьсот и восемьдесят нониллионов, триста двадцать два октиллиона, двести сорок один септиллион, пятьсот сорок шесть секстиллионов, сто тринадцать квинтриллионов, пятьсот четырнадцать квадриллионов, триста восемьдесят три триллиона, сто и сорок три миллиарда пятьсот один миллион пятьсот девятнадцать тысяч сто пятьдесят один
-- или --
28,638,903,918,474,948,771,853,900,789,600,176,813,374,560,672,787,905,549,951,087,488,011,382,049,361,477,907,432,468,077,
275,919,439,086,145,725,268,599,727,509,261,609,545,191,934,342,376,096,106,426,327,812,926,262,086,834,977,087,858,680,
322,241,546,113,514,383,143,501,519,151
Kornfeld Eliyahu Peter
Это не совсем то, что я имел в виду... Но, вы когда-нибудь говорите! такое количество?
У нас есть какой-то код для печати платежных ваучеров, которые тоже должны содержать сумму в цифрах и словах, но никогда даже не доходили до миллионов...
Graeme_Grant
Не практично, я знаю, но было интересно посмотреть, как этот метод работает с любым размером числа... У меня есть округленные версии в моем решении. :)
PIEBALDconsult
Я использую BigInteger в своем. Мухахаха...
Richard Deeming
Попробуйте это с помощью Число Грэма [^]. :Д
Graeme_Grant
Отличное название для номера. ;)