Я просто запомнил бы реальные и сложные части (я полагаю, целые числа или числа с плавающей точкой?), Вызывая эти методы. Затем используйте логику if-else, чтобы выяснить, что вам нужно.
В большинстве случаев для чего-то подобного, когда вы просто разрабатываете для логики, а это не высокопроизводительное (... или даже что-то, что вам действительно нужно написать в реальном мире!), Операторы if-else должны будь всем, что тебе нужно.
Мой совет:
- Не думай об этом. Просто напишите if-else для реализации каждого предложения в описании (где применимо). Компилятор сделает это достаточно быстро.
- Если вы не уверены в том, как (точно) вы должны написать логику if, просто напишите что-нибудь и протестируйте ее, уточняя логику при обнаружении ошибок.
Я предполагаю, что вы немного новичок в программировании, поэтому, пожалуйста, позвольте мне добавить общий совет ...
- Прежде всего, не переживайте. Шутки в сторону. Если вы увязли в деталях, это только замедлит вас. Если вы не знаете, как использовать определенный синтаксис, найдите его и попробуйте найти примеры. И не бойтесь задавать вопросы, как вы уже делаете.
Если вы все-таки не новичок в программировании (может, просто C #?), Примите мои извинения. Я не хочу быть снисходительным или что-то в этом роде.
РЕДАКТИРОВАТЬ: После комментариев я решил отредактировать свой ответ.
Вы уже находитесь на этапе тестирования (как я уже упоминал выше - вы написали ЧТО-ТО). Отличное начало. Теперь вам нужно уточнить.
Ваша проблема в двойном минусе, верно? Ну, у вас есть несколько вариантов.
Во-первых, если вам нужно пространство между знаком и реальной частью (требования предполагают, что это возможно), то отрицательный знак, который находится перед реальной частью, непригоден для использования, так как он будет помечен без пробела. Таким образом, вы можете использовать какую-то функцию абсолютное значение , чтобы сделать число (временно) положительным.
Примерно так (псевдокод, извините, поскольку я на самом деле не знаю C #):
double complexPart = getComplexPart();
double realPart = getRealPart();
bool realIsNegative = false;
if (Math.abs(realPart) != realPart) realIsNegative = true;
print complexPart + " ";
if (realIsNegative) print "- ";
else print "+ ";
print Math.abs(realPart);
Это немного громоздко, и это может быть аккуратнее, если вы используете такие вещи, как условный троичный оператор и улучшенный отступ. Но, надеюсь, это имеет какой-то смысл и поможет вам начать.