Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как решить эту задачку в C# ?

Insane Знаток (465), на голосовании 1 год назад
Дано натуральное число N. Найти наибольшее число М > 1, не равное N,
на которое сумма цифр в записи числа N делится без остатка.
Если такого числа нет, вывести слово «нет». Например: N = 12345,
М = 5. Здесь сумма цифр числа N, равная 15, делится без остатка
на 5.
P.S (пытаюсь написать свой код без использования функций, но никак не выходит, если нужно, могу скинуть, но там наверное много ошибок)
Голосование за лучший ответ
Байкер ‮‮‮йиксмайам Гуру (4098) 1 год назад
Чел, ты программист. А они работают по одиночке, а их самый лучший друг - гугл. Могу только пожелать удачи так как я только вчера начал учить c# , и не смогу ответить на данный вопрос, но максимально попытаюсь дать тебе правильный путь.
Jurijus Zaksas Искусственный Интеллект (424050) 1 год назад
Довольно уродская реализация, особенно что касается подсчета суммы цифр, но работает:

             int n = int.Parse(Console.ReadLine()); 
int DigiSum = n.ToString().ToCharArray().Select(x => int.Parse(x.ToString())).Sum();
int k = DigiSum / 2 + 1;
while (--k > 1)
if (DigiSum % k == 0)
break;
Console.WriteLine(k == 1 ? "No such number" : k.ToString());
Console.ReadLine();
InsaneЗнаток (465) 1 год назад
Спасибо, а можете объяснить 2 и 3 строчку, и что значит переменная k ? DigiSum (это сумма цифр ?)
Brown bear Знаток (282) 1 год назад
что тут не понятного,
учи мат часть!
Похожие вопросы