0909 - PermCircCif: Difference between revisions

From Bitnami MediaWiki
No edit summary
Line 27: Line 27:
===Rezolvare ver. 1===
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare(n):
    if 1 <= n < 1000000000:
        return True
    else:
        return False
def perm(n):
def perm(n):
     if n < 10:
     if n < 10:
Line 35: Line 41:


     return int(''.join(map(str, cifre)))
     return int(''.join(map(str, cifre)))


if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input())
     n = int(input())
     if 1 <= n < 1000000000:
     if validare(n):
         print("Datele sunt corecte.")
         print("Datele sunt corecte.")
         perm(n)
         print("Numarul initial: ", n)
        n = perm(n)
        print("Numarul rotit: ", n)
     else:
     else:
         print("Datele nu corespund restricțiilor impuse.")
         print("Datele nu corespund restricțiilor impuse.")
</syntaxhighlight>
</syntaxhighlight>
==Explicatie==
Funcția validare(n) verifică dacă numărul de intrare se află între 1 și 999.999.999. Funcția perm(n) rotește numărul cu o poziție și îl returnează. În blocul if/else din if __name__ == '__main__':, se verifică dacă numărul de intrare este valid și se execută funcția perm(n) dacă este valid.

Revision as of 16:42, 30 April 2023

Cerință

Să se scrie o funcție Python care să realizează permutarea circulară spre stânga a cifrelor unui număr natural. Numărul este transmis prin intermediul unui parametru care se întoarce din funcție modificat.

Restricții de precizări

  • numele funcției va fi perm
  • funcția va avea un singur parametru, n
  • parametrul n va fi un număr natural nenul mai mic decât 1.000.000.000

Date de intrare

Introduceți numărul n.

Date de ieșire

Dacă datele sunt corecte, apare textul "Datele sunt corecte." și se returnează valoarea corectă. Dacă datele sunt incorecte, apare mesajul "Datele nu corespund restricțiilor impuse.".

Exemplu

Exemplul 1

Dacă n = 1372, după apelul funcției perm, valoarea lui n va fi 3721.

Important

Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.


Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n):

   if 1 <= n < 1000000000:
       return True
   else:
       return False

def perm(n):

   if n < 10:
       return n
   cifre = [int(digit) for digit in str(n)]
   cifre.append(cifre.pop(0))
   return int(.join(map(str, cifre)))

if __name__ == '__main__':

   n = int(input())
   if validare(n):
       print("Datele sunt corecte.")
       print("Numarul initial: ", n)
       n = perm(n)
       print("Numarul rotit: ", n)
   else:
       print("Datele nu corespund restricțiilor impuse.")

</syntaxhighlight>

Explicatie

Funcția validare(n) verifică dacă numărul de intrare se află între 1 și 999.999.999. Funcția perm(n) rotește numărul cu o poziție și îl returnează. În blocul if/else din if __name__ == '__main__':, se verifică dacă numărul de intrare este valid și se execută funcția perm(n) dacă este valid.