3859 - Cai: Difference between revisions

From Bitnami MediaWiki
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...
 
No edit summary
Line 35: Line 35:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
# 4046 - Parfum
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__':
def 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))
 
main()





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>