/ (împărțire întreagă)
Între două int, împărțirea taie zecimalele.
17 / 5 == 3Termenii folosiți pe site, explicați în una-două propoziții, cu un exemplu.
Între două int, împărțirea taie zecimalele.
17 / 5 == 3Restul împărțirii. x % 2 == 0 înseamnă par, x % 10 e ultima cifră.
17 % 5 == 2Poate fi doar true (adevărat) sau false (fals). Perfect pentru «am găsit?», «e prim?».
bool gasit = false;Ieși imediat din bucla în care ești (doar din cea mai apropiată).
if (x == 0) break;Parcurgi vectorul și verifici dacă o valoare apare. Folosești un bool «gasit».
if (v[i] == x) gasit = true;Ultima cifră e x % 10; o tai cu x /= 10. Repeți cât timp x > 0.
472 → 2, 7, 4Citești tot inputul o dată, îl tai în bucăți și iei numerele pe rând cu t[k++].
int n = int.Parse(t[k++]);Cel mai mare divizor comun a două numere. Se calculează cu algoritmul lui Euclid (resturi repetate).
cmmdc(18, 12) = 6Sari peste restul buclei și treci direct la următoarea repetare.
if (x % 2 != 0) continue;O variabilă care numără. Pornește de la 0 și crește cu cnt++ de fiecare dată când găsești ceva.
int cnt = 0; … cnt++;d e divizor al lui x dacă x se împarte exact la d, adică x % d == 0.
divizorii lui 12: 1, 2, 3, 4, 6, 12Programul nu poate nici măcar porni: o paranteză lipsă, un ; uitat, un nume scris greșit. Primești 0 puncte.
lipsește ) sau ;Unele probleme citesc dintr-un fișier (.in) și scriu în altul (.out) în loc de tastatură și ecran.
File.ReadAllText("minmax.in")Buclă pentru când știi de câte ori repeți: de unde pornești; cât timp continui; cum avansezi.
for (int i = 0; i < n; i++)O bucată de cod cu nume, pe care o scrii o dată și o folosești de mai multe ori. Primește valori și poate da înapoi un rezultat cu return.
static int SumaCifre(int x) { ... }Numărul cutiei dintr-un vector. În C# pornește de la 0: primul element e v[0], ultimul v[n - 1].
v[0], v[1], …, v[n-1]Tipul pentru numere întregi obișnuite (cam ±2,1 miliarde).
int n = 10;Unești două șiruri ordonate într-unul ordonat, folosind câte un indice pentru fiecare și luând mereu valoarea mai mică.
1 4 + 2 3 → 1 2 3 4Tipul pentru numere întregi foarte mari. Îl folosești când un calcul poate depăși int.
long og = 9876543210;Cea mai mare valoare. Pornești de la primul element și compari restul cu ea.
mx = v[0];Cea mai mică valoare. Tot de la primul element pornești.
mn = v[0];Un multiplu al lui k e k înmulțit cu un număr întreg.
multiplii lui 3: 0, 3, 6, 9, 12…Are exact doi divizori: 1 și el însuși. 0 și 1 nu sunt prime; 2 e singurul prim par.
2, 3, 5, 7, 11, 13Numărul citit de la coadă la cap. Se construiește cu r = r * 10 + x % 10.
oglinditul lui 123 este 321Ceva ce se citește la fel din ambele părți.
12321, «cojoc»Treci prin toate elementele unui vector, unul câte unul, de obicei cu un for.
for (int i = 0; i < n; i++)Treci prin vector de la coadă spre început.
for (int i = n - 1; i >= 0; i--)Un număr care e alt număr întreg înmulțit cu el însuși.
16 = 4·4, 49 = 7·7Două poziții diferite. Ca să nu numeri aceeași pereche de două ori, j pornește de la i + 1.
for i … for (int j = i + 1; …)Două numere al căror cmmdc e 1. NU trebuie să fie ele însele prime!
8 și 9 sunt prime între elea/b == c/d e același lucru cu a·d == b·c. Așa compari fracții fără împărțiri cu virgulă.
2/3 == 4/6 pentru că 2·6 == 3·4O bucată de elemente vecine dintr-un vector (fără găuri).
în 4 7 1 9, «7 1» e o secvență, «4 1» nuOrdonarea elementelor. În C#: Array.Sort(v) ordonează crescător.
Array.Sort(v);Pornești de la 0 și aduni fiecare valoare: s += x.
int s = 0; s += v[i];Codul de pornire, mereu același, pe care îl copiezi la fiecare problemă.
Păstrezi doar elementele bune, mutându-le în față cu un al doilea indice m. La final n = m.
v[m] = v[i]; m++;O cutie cu nume în care ții o valoare. Valoarea se poate schimba.
int x = 5;Un rând de cutii lipite, cu un singur nume. Fiecare cutie are un număr de ordine (indice).
int[] v = new int[n];Un vector în care fr[x] spune de câte ori a apărut valoarea x. Folosești numărul citit ca poziție.
fr[x]++;Buclă care se repetă cât timp o condiție e adevărată.
while (x > 0) { ... }Write afișează și rămâne pe rând. WriteLine afișează și trece la rândul următor.
Console.Write(x + " ");