[Manual String Processing- Exercises] 03. Formatting numbers
http://pastebin.com/BvkyAYDg задачата е старичка ,но с обновено условие an integer a (0 ≤ a ≤ 2222), a floating-point b and a floating-point c and prints them in 4 virtual columns on the console. Each column should have a width of 10 characters. The number a should be printed in hexadecimal, left aligned; then the number a should be printed in binary form, padded with zeroes (if it is bigger than 10 bits remove the least significant ones), then the number b should be printed with 2 digits after the decimal point, right aligned; the number c should be printed with 3 digits after the decimal point, left aligned.
Мисля че това което правя изпълнява условието ако числото е над 10 бита махам незначещите нули, и нямам представа защо не минава последния тест.
Защо да маха ''1" нали е значещ бит? (if it is bigger than 10 bits remove the least significant ones)
Или аз нещо не го разбирам това условие.
А намери ли проблема? И на мен ми гърми последния тест(аз на C# я правя, но вероятно проблемът е същият).
Да , дефакто ако числото е над 10 бита трябва да се изрежат първите битове а не последните аз се бях заблудил.
Примерно ако имаш 11111111110 трябва да остане 1111111111
Мерси:-)
Ползвам Integer.toBinaryString да конвертирам към binary и StringBuilder.setLength да огранича размера на втора колона. Примерните стойности минават, но не и пети тест. Подскажете какво бъркам:
http://pastebin.com/uwFLLciu
Благодаря предварително,
Ивелин Тенев
Кога за последно задача се е решавала с float?!? Мини един тип нагоре и си 100/100 :) Последния тест е с големи числа :)
Насока мога да ти дам може да проверяваш дали стринга е над 10 бита тогава правиш lengtha да е 10 , а ако не е нищо не правиш просто в принтирането долу още в плейсхолдъра може да му зададеш с колко '0' да ти долепи.
Аз иначе махането на битовете го правя със substring , но и с твоя начин трябва да се получи.