3859 - Cai: Difference between revisions
Pagină nouă: == Cerinţa == Se dă '''N''', în câte moduri putem plasa '''2''' cai pe o tablă de șah de '''N''' pe '''N''' astfel încât să nu se atace? == Date de intrare == Programul citește de la tastatură numărul '''N'''. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", programul va afișa pe ecran numărul '''X''', răspunsul la întrebarea din enunț. În cazul în care datele nu respectă restricțiile, se... |
Nagy Lenard (talk | contribs) No edit summary |
||
Line 35: | Line 35: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
def validare(n): | def validare(n): | ||
if n < 1 or n > 10000: | if n < 1 or n > 10000: | ||
Line 49: | Line 48: | ||
else: | else: | ||
print("Datele sunt introduse corect.") | print("Datele sunt introduse corect.") | ||
if n == 1: | if n == 1: | ||
return 1 | return 1 | ||
Line 55: | Line 54: | ||
return 6 | return 6 | ||
else: | else: | ||
return (n**2)*(n**2-1)/2 - 4*(n-1)*(n-2) | return int((n ** 2) * (n ** 2 - 1) / 2 - 4 * (n - 1) * (n - 2)) | ||
if __name__ == '__main__': | |||
n = int(input("Introduceți numărul de rânduri și coloane (N): ")) | n = int(input("Introduceți numărul de rânduri și coloane (N): ")) | ||
solutii = numar_solutii(n) | solutii = numar_solutii(n) | ||
if solutii is not None: | if solutii is not None: | ||
print("Numărul de moduri în care putem plasa 2 cai pe o tablă de șah de {} pe {} astfel încât să nu se atace este: {}".format(n, n, solutii) | print( | ||
"Numărul de moduri în care putem plasa 2 cai pe o tablă de șah de {} pe {} astfel încât să nu se atace este: {}".format( | |||
n, n, solutii)) | |||
Revision as of 13:00, 19 March 2023
Cerinţa
Se dă N, în câte moduri putem plasa 2 cai pe o tablă de șah de N pe N astfel încât să nu se atace?
Date de intrare
Programul citește de la tastatură numărul N.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", programul va afișa pe ecran numărul X, răspunsul la întrebarea din enunț. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări
- 1 ≤ n ≤ 10.000.
- Caii nu se pot afla pe același pătrat.
Exemple
Exemplul 1
- Intrare
- 2
- Ieșire
- Datele sunt introduse corect.
- 6
Exemplul 2
- Intrare
- 5
- Ieșire
- Datele sunt introduse corect.
- 252
Exemplul 3
- Intrare
- 10001
- Ieșire
- Datele nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line="1"> def validare(n):
if n < 1 or n > 10000: return False else: return True
def numar_solutii(n):
if not validare(n): print("Datele nu corespund restricțiilor impuse.") return else: print("Datele sunt introduse corect.")
if n == 1: return 1 elif n == 2: return 6 else: return int((n ** 2) * (n ** 2 - 1) / 2 - 4 * (n - 1) * (n - 2))
if __name__ == '__main__':
n = int(input("Introduceți numărul de rânduri și coloane (N): ")) solutii = numar_solutii(n) if solutii is not None: print( "Numărul de moduri în care putem plasa 2 cai pe o tablă de șah de {} pe {} astfel încât să nu se atace este: {}".format( n, n, solutii))
</syntaxhighlight>