Coding 101 Exam - 26 March 2016 Задача 06 - Магически числа
Здравйте,
решавайки задачите от изпита на 26 март виждам трудност в 6та задача. Видях авторското решение и го разбрах, но опитвайки се да я реша сам тръгнах по друг път. Така и не мога да разбера къде греша , ако може някой да погледне кода и да ми каже.Условието е следното:
Да се напише програма, която въвежда едно цяло „магическо“ число и изкарва всички възможни 6-цифрени числа, за които произведението на неговите цифри е равно на „магическото“ число.
Пример: „Магическо число“ -> 2
- 111112 -> 1 * 1 * 1 * 1 * 1 * 2 = 2
- 111121 -> 1 * 1 * 1 * 1 * 2 * 1 = 2
- 111211 -> 1 * 1 * 1 * 2 * 1 * 1 = 2
- 112111 -> 1 * 1 * 2 * 1 * 1 * 1 = 2
- 121111 -> 1 * 2 * 1 * 1 * 1 * 1 = 2
- 211111 -> 2 * 1 * 1 * 1 * 1 * 1 = 2
Вход
Входът се чете от конзолата и се състои от едно цяло число в интервала [1…600000].
Изход
На конзолата трябва да се отпечатат всички “магически” числа, разделени с интервал.
Това е моето решение:
namespace Задача_06___Магически_числа
{
class Program
{
static void Main(string[] args)
{
int magicNumber = int.Parse(Console.ReadLine());
int proizv = 1;
for (int i = 100000; i <= 999999; i++)
{
int n = i;
do
{
proizv = proizv * (n % 10);
n = n / 10;
} while (n > 0);
if (proizv == magicNumber)
{
Console.Write("{0} " , i);
}
}
}
}
}
Много благодаря :) Усещах , че е нещо много малко , но така и не успях да го видя сам...а то като проследиш логиката на кода и се вижда лесно. Просто ми е убягнало. Отново благодаря!
Моля, няма защо. Успех!
Благодаря!