3859 - Cai
De la Universitas MediaWiki
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
# 4046 - Parfum
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 (n**2)*(n**2-1)/2 - 4*(n-1)*(n-2)
def 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))
main()