2752 - Cifre Zecimale

From Bitnami MediaWiki
Revision as of 18:26, 22 April 2023 by Vardai Erwin (talk | contribs) (→‎Date de ieșire)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerință[edit | edit source]

Se consideră șirul de cifre zecimale obținut prin scrierea consecutivă a numerelor naturale de la 10 la 99. Pentru un k dat, să se afișeze cifra ce apare în acest șir pe poziția k.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul k.

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran valoarea C, reprezentând cifra situată pe poziția k în șir de mai sus. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări[edit | edit source]

  • 1 ⩽ k ⩽ 180

Exemplul 1[edit | edit source]

Intrare
5
Ieșire
Datele introduse corespund restricțiilor impuse.
1

Rezolvare[edit | edit source]

Rezolvare vers. 1[edit | edit source]

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

   return k.isdigit() and 1 <= int(k) <= 180


def cifre_zecimale(k): #căutăm o cifră zecimală de pe poz k din intervalul 10-99

   start_num = 10
   end_num = 99
   num_count = end_num - start_num + 1 #contorizăm numărul 
   digit_count = num_count * 2
   digit_index = k - 1 #calculăm poziția cifrei căutate 
   num_index = digit_index // 2
   is_tens_digit = digit_index % 2 == 0 
  1. aflăm dacă cifra căutată este cifra zecilor sau a unităților
   if is_tens_digit:
       digit = (start_num + num_index) // 10
   else:
       digit = (start_num + num_index) % 10
   print(digit)


if __name__ == '__main__':

   k = input("Introduceti numarul k: ")
   if validare(k):
       k = int(k)
       print("Datele introduse corespund restricțiilor impuse.")
       cifre_zecimale(k)
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>