[Exam Problems] C# Basics - Nine Digit Magic Numbers
Здравейте!
Започнах да решавам задачите от другите изпитни дати и явно, не мога да разбера условието на една от тях: Nine Digit Magic Numbers. Ако разбирам правилно става въпрос за 9 цифрени числа генерирани с цифрите от 1 до 7. Сумата на всички знаци трябва да е SUM, а разликта меджу първите 3 и вторите 3, и вторите 3 и третите 3 е DIFF, като първата тройка е < от втората, а тя е < от третата. Аз получавам много повече числа от тези в тестовете, но те отговарят на условията. Моля, някой, който е бил на този изпит да ми каже къде греша??
sum = 24
diff = 103
очакван резултат:
121224327
211314417
моят резултат:
112215318
115218321
118221324
121224327
211314417
@Вяра (а и всички останали) ,
Харесва ми решението ти - кратичко и същевременно богато на методи. Аз 3-4 часа се борех с тази задача, но тя ми е една от първите от изпити така или иначе. В началото и малките възвишения изглеждат непреодолими планини, така че ако има и други като мен, които се сдухват при наличието на толкова мн "гурута" - релакс , всяко нещо с времето си :)
Първо цях да похваля колежката Verito с това че ми даде идея как да конкатенирам integers. Мислех си че е някъв трик, заучена последователност, но после като видях твоя пример - още по-кратко и лесно може да е! :)
Към решението на Вяра са ми въпрсите:
if (wholeNumber.Contains("8")||wholeNumber.Contains("9")||wholeNumber.Contains("0"))
{
continue;
}
Каква е идеята на това ? ако ще продължава цикъла какъв е смисъла да го пишем ? И не е ли идеята точно да махнем 0,8 и 9 по някакъв начин...
for (int k = 0; k < wholeNumber.Length; k++)
{
targetSum += Convert.ToInt32(Convert.ToString(wholeNumber[k]));
}
Каква е идеята да конверираме числата от редицата в string и после пак в int ако те са си int така или иначе ?
Благодаря на отзовалите се, аз лично направих задачата с 9 вложени цикъла и ми изглежда доста ясен и подреден кода. Само дето гърми за време..