Operacja modulo na elementach tablicy

0

Czy jest bardziej optymalny sposób na to, żeby zapisać w tablicy liczby podzielne przez 3, wykorzystując jeden licznik zamiast dwóch?

        static void Main(string[] args)
        {
            int[] tablica = new int[10];
            int j = 0;

            for (int i = 1; i <= 30; i++)
            {
                if (i%3 == 0)
                {
                    tablica[j] = i;
                    j++;
                }
            }

            for (int i = 0; i < tablica.Length; i++)
            {
                Console.WriteLine(tablica[i]);
            }
        }
3
var array = Enumerable.Range(1, 30).Where(x => x % 3 == 0).ToArray();
2

Użyj listy zamiast tablicy

var lista = new List<int>();

for (int i = 1; i <= 30; i++)
{
	if (i%3 == 0)
	{
		lista.Add(i);
	}
}

for (int i = 0; i < lista.Count; i++)
{
	Console.WriteLine(lista[i]);
}
1
mivara napisał(a):

Czy jest bardziej optymalny

Nie, bo nie istnieje coś takiego jak bardziej optymalny.

sposób na to, żeby zapisać w tablicy liczby podzielne przez 3, wykorzystując jeden licznik zamiast dwóch?

Czemu nie po prostu tak?

int[] tablica = new int[10];
for (int i = 0; i < 10; i++)
{
    tablica[i] = (i + 1) * 3;
}

(Na podstawie II twierdzenia Schodkowa: jeśli liczbę całkowitą pomnożymy przez 3, to jest ona podzielna przez 3 bez reszty.)

1 użytkowników online, w tym zalogowanych: 0, gości: 1