Дан целочисленный массив размера N. Увеличить все числа, кратные 3, содержащиеся в массиве, на исходное значение последнего числа, кратного 3. Если числа, кратные 3, в массиве отсутствуют, то оставить массив без изменений.
Помогите, пожалуйста, с решением данного задания в C#
Answers & Comments
Ответ:Вот пример решения данной задачи на языке C#:
using System;
class Program {
static void Main() {
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; // исходный массив
int lastMultipleOfThree = 0; // последнее число, кратное 3
for (int i = arr.Length - 1; i >= 0; i--) { // ищем последнее число, кратное 3
if (arr[i] % 3 == 0) {
lastMultipleOfThree = arr[i];
break;
}
}
for (int i = 0; i < arr.Length; i++) { // увеличиваем числа, кратные 3, на значение последнего числа, кратного 3
if (arr[i] % 3 == 0) {
arr[i] += lastMultipleOfThree;
}
}
Console.WriteLine(string.Join(" ", arr)); // выводим полученный массив
}
}
В данном примере используется два цикла: первый цикл ищет последнее число, кратное 3, а второй цикл увеличивает числа, кратные 3, на значение последнего числа, кратного 3. Если числа, кратные 3, в массиве отсутствуют, то массив остается без изменений. Результат выводится на экран с помощью метода Console.WriteLine.
Объяснение:
Ответ:
int[] array = { 2, 7, 9, 12, 15, 18, 21 };
int lastMultipleOfThree = 0;
for (int i = array.Length - 1; i >= 0; i--)
{
if (array[i] % 3 == 0)
{
lastMultipleOfThree = array[i];
break;
}
}
if (lastMultipleOfThree != 0)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 3 == 0)
{
array[i] += lastMultipleOfThree;
}
}
}
Console.WriteLine("Результат: " + string.Join(", ", array));
Объяснение:
Здесь мы объявляем целочисленный массив array и задаем ему начальные значения. Затем мы проходим по массиву в обратном порядке и находим последнее число, кратное 3. Если такое число есть, мы проходим по массиву еще раз и увеличиваем каждое число, кратное 3, на значение последнего числа, кратного 3. В конце мы выводим результат в консоль.