1633 - Dublare1

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerință

Să se scrie o funcție Python care se dublează prima cifră a unui număr natural n transmis ca parametru. Funcția întoarce rezultatul prin intermediul aceluiași parametru n.


Date de intrare

Un număr natural n, unde 1 ≤ n ≤ 10.000.000.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa noul număr obținut prin dublarea primei cifre a lui n. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări

  • 1 ≤ n ≤ 10.000.000
  • funcția va avea un singur parametru n
  • numele funcției va fi dublare1

Exemplu

Exemplul 1

Intrare
85412
Ieșire
Datele introduse corespund restricțiilor impuse.
Numarul dupa dublare: 885412

Explicatie

Prima cifră 8 se scrie de două ori.


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

def validare(n):
    return 1 <= int(n) <= 10_000_000

def dublare1(n):
    if n < 10:  # numarul are o singura cifra
        n *= 2
    else:
        cifra = str(n)[0]  # convertim numarul la sir de caractere si preluam prima cifra
        n = int(cifra * 2 + str(n)[1:])  # concatenam de doua ori cifra cu restul numarului si il convertim la int
    return n

if __name__ == '__main__':
    n = input("Introduceti un numar intreg: ")
    print("Numarul inainte de dublare: ", n)
    if validare(n):
        n = int(n)
        n = dublare1(n)
        print("Datele introduse corespund restricțiilor impuse.")
        print("Numarul dupa dublare: ", n)
    else:
        print("Datele introduse nu corespund restricțiilor impuse.")

Explicatii

Acesta este un cod Python care primește un număr întreg de la utilizator și îl dublează pe prima cifră, folosind o funcție numită dublare1. Înainte de a apela această funcție, programul verifică dacă numărul introdus de utilizator este valid, adică dacă se încadrează în intervalul [1, 10.000.000]. Funcția validare primește un parametru n și returnează True dacă n este un număr întreg valid și False în caz contrar.

Funcția dublare1 primește un parametru n și returnează noul număr obținut prin dublarea primei cifre a lui n. În cazul în care n are o singură cifră, aceasta este dublată simplu prin înmulțire cu 2. În caz contrar, se obține prima cifră a lui n folosind str(n)[0] și se concatenează această cifră de două ori cu restul numărului, folosind int(cifra * 2 + str(n)[1:]). Rezultatul final este returnat sub formă de număr întreg.