0909 - PermCircCif: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
Line 36: | Line 36: | ||
else: | else: | ||
return False | return False | ||
def perm(n): | def perm(n): | ||
Line 45: | Line 46: | ||
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 validare(n): | if validare(n): | ||
print("Datele | print("Datele de intrare corespund restrictiilor impus.") | ||
n = perm(n) | n = perm(n) | ||
print("Numarul rotit: ", n) | print("Numarul rotit:", n) | ||
else: | else: | ||
print("Datele nu corespund | print("Datele de intrare nu corespund restrictiilor impus.") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatie== | ==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. | 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:12, 6 May 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
Se citește de la tastatură un număr n.
Date de ieșire
Dacă datele sunt corecte, apare textul "Datele de intrare corespund restricțiilor impuse." și se returnează valoarea corectă. Dacă datele sunt incorecte, apare mesajul "Datele de intrare nu corespund restricțiilor impuse.".
Exemplu
Exemplul 1
- Intrare
- 1372
- Ieșire
- Datele de intrare corespund restrictiilor impus.
- 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 de intrare corespund restrictiilor impus.") n = perm(n) print("Numarul rotit:", n) else: print("Datele de intrare nu corespund restrictiilor impus.")
</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.