3246 - Echilibrat ab: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Pagină nouă: = Cerința = Se dau două numere naturale <code>a</code> și <code>b</code>. Calculați suma numerelor echilibrate din intervalul <code>[a,b]</code>. Un număr este echilibrat dacă are număr par de cifre si are numărul de cifre pare egal cu numărul de cifre impare. De exemplu <code>3427</code> este echilibrat, iar <code>2333</code> nu este. = Date de intrare = Programul citește de la tastatură numerele <code>a</code> și <code>b</code>. = Date de ieșire = Programul...
 
Pop Giulia (talk | contribs)
No edit summary
Line 1: Line 1:
==Cerința==
Se dau două numere naturale a și b. Calculați suma numerelor echilibrate din intervalul [a,b]. Un număr este echilibrat dacă are număr par de cifre si are numărul de cifre pare egal cu numărul de cifre impare. De exemplu 3427 este echilibrat, iar 2333 nu este.


= Cerința =
==Date de intrare==
Se dau două numere naturale <code>a</code> și <code>b</code>. Calculați suma numerelor echilibrate din intervalul <code>[a,b]</code>. Un număr este echilibrat dacă are număr par de cifre si are numărul de cifre pare egal cu numărul de cifre impare. De exemplu <code>3427</code> este echilibrat, iar <code>2333</code> nu este.
Programul citește de la tastatură numerele a și b.


= Date de intrare =
==Date de ieșire==
Programul citește de la tastatură numerele <code>a</code> și <code>b</code>.
Programul va afișa pe ecran numărul s, reprezentând suma numerelor echilibrate din intervalul [a,b].


= Date de ieșire =
==Restricții și precizări==
Programul va afișa pe ecran numărul <code>s</code>, reprezentând suma numerelor echilibrate din intervalul <code>[a,b]</code>.
1 ≤ a b ≤ 1.000.000
==Exemplu:==
Intrare


= Restricții și precizări =
56 71
Ieșire


* <code>1 ≤ a ≤ b ≤ 1.000.000</code>
509
==Explicație==
În intervalul [56,71] numerele echilibrate sunt 56, 58, 61, 63, 65, 67, 69, 70, iar suma lor este 509.


= Exemplu: =
==Încărcare soluție==
Intrare
<syntaxhighlight lang="python" line>
56 71
def is_balanced(n):
Ieșire
    digits = [int(d) for d in str(n)]
509
    even_count = sum(d % 2 == 0 for d in digits)
    odd_count = len(digits) - even_count
    return len(digits) % 2 == 0 and even_count == odd_count
 
a, b = map(int, input().split())


=== Explicație ===
sum_balanced = 0
În intervalul <code>[56,71]</code> numerele echilibrate sunt <code>56</code>, <code>58</code>, <code>61</code>, <code>63</code>, <code>65</code>, <code>67</code>, <code>69</code>, <code>70</code>, iar suma lor este <code>509</code>.
for i in range(a, b+1):
    if is_balanced(i):
        sum_balanced += i


== Încărcare soluție ==
print(sum_balanced)
</syntaxhighlight>

Revision as of 10:13, 30 April 2023

Cerința

Se dau două numere naturale a și b. Calculați suma numerelor echilibrate din intervalul [a,b]. Un număr este echilibrat dacă are număr par de cifre si are numărul de cifre pare egal cu numărul de cifre impare. De exemplu 3427 este echilibrat, iar 2333 nu este.

Date de intrare

Programul citește de la tastatură numerele a și b.

Date de ieșire

Programul va afișa pe ecran numărul s, reprezentând suma numerelor echilibrate din intervalul [a,b].

Restricții și precizări

1 ≤ a ≤ b ≤ 1.000.000

Exemplu:

Intrare

56 71 Ieșire

509

Explicație

În intervalul [56,71] numerele echilibrate sunt 56, 58, 61, 63, 65, 67, 69, 70, iar suma lor este 509.

Încărcare soluție

<syntaxhighlight lang="python" line> def is_balanced(n):

   digits = [int(d) for d in str(n)]
   even_count = sum(d % 2 == 0 for d in digits)
   odd_count = len(digits) - even_count
   return len(digits) % 2 == 0 and even_count == odd_count

a, b = map(int, input().split())

sum_balanced = 0 for i in range(a, b+1):

   if is_balanced(i):
       sum_balanced += i

print(sum_balanced) </syntaxhighlight>