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

C# помогите срочно

Камиль Зиангиров Ученик (136), на голосовании 4 месяца назад
Напишите программу, которая вычисляет количество чисел от 1 до N (включительно), удовлетворяющих одновременно двум условиям:

предпоследняя цифра числа равна 3
произведение цифр числа делится на 9.
N вводится пользователем с клавиатуры.



Входные данные:

Вводится натуральное число N<= 10000.



Выходные данные:

Количество чисел от 1 до N, удовлетворяющих двум условиям:

предпоследняя цифра числа равна 3
произведение цифр числа делится на 9.


Так, например, если программе на вход подать число 30, она должна вывести число 1, т.к. в диапазоне от 1 до 30 только 30 удовлетворяет условию задачи.



В поле краткого ответа введите число, которое получается в результате работы программы при вводе числа 10000.
Голосование за лучший ответ
Иван Владимирович Профи (816) 5 месяцев назад
 using System; 

class Program
{
static void Main()
{
Console.Write("Введите число N (не более 10000): ");
int N = int.Parse(Console.ReadLine());
int count = 0;

for (int i = 1; i <= N; i++)
{
if (HasPenultimateDigitThree(i) && ProductOfDigitsDivisibleByNine(i))
{
count++;
}
}

Console.WriteLine($"Количество чисел: {count}");
}

static bool HasPenultimateDigitThree(int number)
{
if (number < 10) return false; // Число меньше 10 не имеет предпоследней цифры
int penultimateDigit = (number / 10) % 10;
return penultimateDigit == 3;
}

static bool ProductOfDigitsDivisibleByNine(int number)
{
int product = 1;
while (number > 0)
{
int digit = number % 10;
product *= digit;
number /= 10;
}
return product % 9 == 0;
}
}
Похожие вопросы