3926 - Alternant 1
Sursa: [1]
Explicație
Spunem că un număr natural este alternant dacă cifrele pare alternează cu cele impare. De exemplu, numere alternante sunt 236, 6, 12345678.
Cerinţa
Se dă un număr natural. Să se verifice dacă este sau nu alternant.
Date de intrare
Programul citește de la tastatură numărul.
Date de ieşire
Programul va afișa pe ecran mesajul da dacă numarul este alternant sau mesajul nu dacă nu este alternant.
Restricții și precizări
- 0 ≤ numar ≤ 1.000.000.000.000.000
Exemplu 1
- Intrare
- 265
- Ieșire
- nu
Exemplu 2
- Intrare
- 8183
- Ieșire
- da
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line>
def verifica_numar(numar):
try: numar_int = int(numar) # Convertim numarul introdus într-un întreg
if numar_int <= 0: print("Numărul introdus nu este un număr natural.") elif str(numar_int) != numar: print("Numărul introdus conține caractere nevalide.") else: paritate = numar_int % 2 # Initial considerăm că prima cifră e pară/impară
# Verificăm dacă cifrele sunt alternate cifre = str(numar_int) for i in range(1, len(cifre)): if int(cifre[i]) % 2 != paritate: # Dacă cifra curentă are o paritate diferită de cifra anterioară paritate = int(cifre[i]) % 2 # Schimbăm paritatea else: print("Numărul nu este alternant.") break else: print("Numărul este alternant.")
except ValueError: print("Numărul introdus nu este valid.")
if __name__ == "__main__":
numar = input("Introduceți un număr natural: ") verifica_numar(numar)
</syntaxhighlight>
Rezolvare ver. 2
<syntaxhighlight lang="python" line>
numar = input("Introduceți un număr natural: ")
try:
numar_int = int(numar) # Convertim numarul introdus într-un întreg
if numar_int <= 0: print("Numărul introdus nu este un număr natural.") elif str(numar_int) != numar: print("Numărul introdus conține caractere nevalide.") else: paritate = numar_int % 2 # Initial considerăm că prima cifră e pară/impară
# Verificăm dacă cifrele sunt alternate cifre = str(numar_int) for i in range(1, len(cifre)): if int(cifre[i]) % 2 != paritate: # Dacă cifra curentă are o paritate diferită de cifra anterioară paritate = int(cifre[i]) % 2 # Schimbăm paritatea else: print("Numărul nu este alternant.") break else: print("Numărul este alternant.")
except ValueError:
print("Numărul introdus nu este valid.")
</syntaxhighlight>