Консультация № 198881
09.06.2020, 12:03
0.00 руб.
0 5 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Дана непустая последовательность целых ненулевых чисел, за которой следует 0. Определить, сколько в ней чисел, кратных 3 и 5, подсчитать их произведение.
На C#

Обсуждение

давно
Советник
400484
472
09.06.2020, 12:13
общий
09.06.2020, 12:13
Добрый день.
Последовательность чисел как разделяется? (Пробел, точка с запятой или т.п.)
Последовательность - это строка?
Последовательность вводится пользователем?
давно
Посетитель
404180
1
09.06.2020, 12:33
общий
09.06.2020, 12:34
Адресаты:
Последовательность чисел как разделяется? (Пробел, точка с запятой или т.п.)

Пробелом.

Последовательность - это строка?
Последовательность вводится пользователем?

Да.
давно
Советник
400484
472
09.06.2020, 12:55
общий
10.06.2020, 09:37
Посмотрите в сторону метода Split().
Код:

var array = text.Split(' ');

Дальше пройтись по массиву строк преобразовав их в натуральное число. Метод Parse() или TryParse() в помощь.
Код:

int i = int.Parse(array[0]);

Дальше получаем остаток от деления (%). Проверяем если от равен нулю, то увеличиваем счетчик на 1 для числа 3 и 5.
Код:

if (i % 3 == 0) num3++;

Все просто. Немного подумать.
давно
Профессор
230118
3054
09.06.2020, 20:25
общий
Цитата: solowey
if (i % 3 == 0) num3++;

А лучше
Цитата: solowey
if (i % 3 == 0 || i % 5 == 0) num35++;
давно
Советник
400484
472
12.06.2020, 19:39
общий
это ответ
Здравствуйте, Narasa!
Вот примерный вариант решения:
Код:

using System;

namespace ConsoleApp1
{
class Program
{
/*Дана непустая последовательность целых ненулевых чисел, за которой следует 0. Определить, сколько в ней чисел, кратных 3 и 5, подсчитать их произведение.*/
static void Main(string[] args)
{
Console.WriteLine("Введите последовательность целых чисел, через пробел. Последовательность заканчивается 0.");
string text = Console.ReadLine();
if (text == String.Empty)
{
Console.WriteLine("Вы не ввели последовательность целых чисел.");
Console.WriteLine("Выходим.");
return;
}
string[] array = text.Split(' ');
if (array[array.Length - 1] != "0")
{
Console.WriteLine("Вы не закончили последовательность целых чисел 0.");
Console.WriteLine("Выходим.");
return;
}

int num35 = 0;
int mult35 = 1;
foreach (string s in array)
{
if (s == "0")
break;
try
{
int i = Int32.Parse(s);
if (i % 3 == 0 || i % 5 == 0)
{
num35++;
mult35 *= i;
}
}
catch (Exception e)
{
Console.WriteLine(e);
Console.WriteLine("Вы ввели не целое число.");
Console.WriteLine("Выходим.");
return;
}
}
Console.WriteLine($"Количество чисел, кратных 3 и 5: {num35}.");
Console.WriteLine($"Их произведение: {mult35}.");
}
}
}

Результат:
Код:

Введите последовательность целых чисел, через пробел. Последовательность заканчивается 0.
1 2 3 4 5 6 7 8 10 15 0
Количество чисел, кратных 3 и 5: 5.
Их произведение: 13500.
Форма ответа