Делал задачку на цикл, решил пошагово посмотреть как все работает и встал в ступор. Почему не выходит из цикла когда j = 4?
int[] arr = { 1, 3, 2, 6, 1 };
for (int i = 0, j = 1; j <= arr.Length - 1; j++)
{
int number = arr[i];
if (i == arr.Length - 1)
break;
if (number + arr[j] == k || (number + arr[j]) % k == 0)
result++;
if (j == arr.Length - 1)
{
i++;
j = i;
}
}
Вначале замечание:
Условие
if (number + arr[j] == k || (number + arr[j]) % k == 0)
избыточно. Достаточно проверки
if ((number + arr[j]) % k == 0)
Как я понял, смысл программы подсчитать количество пар чисел массива, сумма которых делится на k. Почему бы не упростить задачу и повысить читабельность кода при помощи второго вложенного цикла?
int[] arr = { 1, 3, 2, 6, 1 };
for (int i = 0; i < arr.Length - 1; i++) {
for (int j = i + 1; j < arr.Length; j++) {
if ((arr[i] + arr[j]) % k == 0)
result++;
}
}
Вставлю свои пять копеек, как бывший участник егэ по информатике:
Вложенные циклы с условием, зависимым от N, делают время выполнения программы зависимым от N*N. Более правильным было бы:
Но при не очень большой длине входящих массивов целесообразней, конечно же, использовать вложенный цикл.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь вызвать signInManagerCreateUserPrincipalAsync(user), а он чудит:
Я запускаю IE (в общем любой браузер) из программы c# и мне необходимо изменить масштаб отображения страницы сайтаС запуском и открытием страницы...
В экзаменационном билете есть вопрос : Что такое именованный тип данныхОпишите как он используется