Operacja modulo na elementach tablicy

Operacja modulo na elementach tablicy
MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

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

Kopiuj
        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]);
            }
        }
SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1591
3
Kopiuj
var array = Enumerable.Range(1, 30).Where(x => x % 3 == 0).ToArray();
WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5226
2

Użyj listy zamiast tablicy

Kopiuj
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]);
}
somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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?

Kopiuj
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.)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.