somma_cifre_pagina.py

Script

# calcolo delle frequenze assolute dei numeri ottenuti sommando le cifre dei numeri di pagina di un libro
# senza l'utilizzo degli array (liste Python)

print("Calcolo delle frequenze assolute dei numeri ottenuti sommando le cifre dei numeri di pagina di un libro")

n = int(input("Quante pagine ha il tuo libro? (n<1000) "))

r1 = r2 = r3 = r4 = r5 = r6 = r7 = r8 = r9 = r10 = r11 = r12 = r13 = r14 = r15 = r16 = r17 = r18 = r19 = r20 = r21 = r22 = r23 = r24 = r25 = r26 = r27 = 0

for i in range(1, n+1):
    # formule per l'estrazione delle cifre separate dal numero i
    c = i // 100                  # centinaia
    d = (i - c*100) // 10         # decine
    u = i - c*100 - d*10          # unità

    s = c + d + u                 # calcolo la somma delle varie cifre
    
    if s == 1:                    # se la somma delle cifre è 1, incremento il contatore r1
        r1 += 1
    elif s == 2:                  # altrimenti, se la somma delle cifre è 2, incremento il contatore r2
        r2 += 1
    elif s == 3:
        r3 += 1
    elif s == 4:
        r4 += 1
    elif s == 5:
        r5 += 1
    elif s == 6:
        r6 += 1
    elif s == 7:
        r7 += 1
    elif s == 8:
        r8 += 1
    elif s == 9:
        r9 += 1
    elif s == 10:
        r10 += 1
    elif s == 11:
        r11 += 1
    elif s == 12:
        r12 += 1
    elif s == 13:
        r13 += 1
    elif s == 14:
        r14 += 1
    elif s == 15:
        r15 += 1
    elif s == 16:
        r16 += 1
    elif s == 17:
        r17 += 1
    elif s == 18:
        r18 += 1
    elif s == 19:
        r19 += 1
    elif s == 20:
        r20 += 1
    elif s == 21:
        r21 += 1
    elif s == 22:
        r22 += 1
    elif s == 23:
        r23 += 1
    elif s == 24:
        r24 += 1
    elif s == 25:
        r25 += 1
    elif s == 26:
        r26 += 1
    elif s == 27:
        r27 += 1
    else:
        print("Numero non previsto:", s)

print("Frequenze ottenute")
print(" 1 -", r1)
print(" 2 -", r2)
print(" 3 -", r3)
print(" 4 -", r4)
print(" 5 -", r5)
print(" 6 -", r6)
print(" 7 -", r7)
print(" 8 -", r8)
print(" 9 -", r9)
print("10 -", r10)
print("11 -", r11)
print("12 -", r12)
print("13 -", r13)
print("14 -", r14)
print("15 -", r15)
print("16 -", r16)
print("17 -", r17)
print("18 -", r18)
print("19 -", r19)
print("20 -", r20)
print("21 -", r21)
print("22 -", r22)
print("23 -", r23)
print("24 -", r24)
print("25 -", r25)
print("26 -", r26)
print("27 -", r27)

Shell

Calcolo delle frequenze assolute dei numeri ottenuti sommando le cifre dei numeri di pagina di un libro
Quante pagine ha il tuo libro? (n<1000) 999
Frequenze ottenute
 1 - 3
 2 - 6
 3 - 10
 4 - 15
 5 - 21
 6 - 28
 7 - 36
 8 - 45
 9 - 55
10 - 63
11 - 69
12 - 73
13 - 75
14 - 75
15 - 73
16 - 69
17 - 63
18 - 55
19 - 45
20 - 36
21 - 28
22 - 21
23 - 15
24 - 10
25 - 6
26 - 3
27 - 1