Aller au contenu

Socle de statues

Sur France-IOI

Il y a un exercice Socle de statues, où on pourrait compléter ce code qui calcule le volume d'un socle de statue ayant une largeur en bas (l_bas) et une largeur en haut (l_haut).

🐍 Script Python
def volume_socle(l_bas, l_haut):
    ...


assert volume_socle(7, 3) == 135

l_bas = int(input())
l_haut = int(input())
print(volume_socle(l_bas, l_haut))
  1. Faire éventuellement, là-bas, cet exercice une première fois avec une solution itérative (une boucle).
  2. Refaire, ici, cet exercice avec une solution récursive.

Volume d'un socle

Pour un socle, dont la base mesure 7 et le haut mesure 3 :

  • Les étages sont des carrés de côtés : 7, 6, 5, 4 et 3
  • La hauteur de chaque étage est 1
  • Le volume doit donc être de
\[\begin{align*} \mathcal V &= 7×7×1 + 6×6×1 + 5×5×1 + 4×4×1 + 3×3×1 \\ \mathcal V &= 49 + 36 + 25 + 16 + 9 \\ \mathcal V &= 135 \\ \end{align*}\]

On demande une fonction qui renvoie le volume pour un socle dont les deux largeurs extrêmes sont données.

Exercice

Coder une fonction récursive volume_socle qui prend deux entiers en paramètres : la largeur en bas (l_bas) et la largeur en haut (l_haut) et qui renvoie le volume du socle défini dans l'exercice.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /
.128013x/.r;nbylaeu)*dVM63m(P+02-U,59f7B8 _o=pcwgv41`kéhtsSCDi:050p0l0Y0k0%0j0Z0J0O0j0k0Z0Z0M010Y0%0N010406050Z0m0u0u0k0e0i040!0L0j0m0|0L0g050c13151719110N04051p1i1s0c1p110p0%0R0;0?0^0`0X0%0Q0X0j1G0X0Y0 050,0h0j0l1B0@0_011F1H1J1H0Y1P1R1N0Y0e1q0Y0X1T1D010F0.0l0g0k0u0l010;1c0Z0N0k0g0`0z1N1~201.1V1;1R1@1_0 0a0J0w0e0L0N0L0Z0%1f0g0J0*1|0e0e0l0O2n1i250g1q0c1,2A1)1+1*1O0p270`1J0g1?2k1N1y1A0=1U2K0%2M0g0L2Q1N0N2t1q2y2A2(121 2o2S1/2X0e160j0 0J0T2x2,102+262.1V2:2=2@0z2`202|2y2J01310k2?040J0t352z11382 0`3b3d0J0S3h372,393n2@0D3r3j3t3l3a0L2;3c2@0s3y2}2-1C303D323e0G3I3k3L3m3N3F3e0I3R3A3T3C3E3o0E3Z2~3#3v040T0y3*3K2T3$3O0T2_1j2{3z3+3?3-0T343{363}3=2/3V3d0T3g433i3J3u480 0T3q4c3s3~473%4h3x4k454f4o3.3H4r4e3B403Q4x3S3 4g3.3Y4C3!4E4u0T3)4I4m3M4u0z3:4O464Q3O0z3`2(4s4z4F0z424!4y3,4%4b4*4D4n4X4j4/4J4;3W0z4q4@4P3U4R4w4}4V4 4X4B524t4X4H574$4R4N5b4,4u0t4T5f4K3O0t4Z3|4+5l3W0t4)5p4:4W5s4.2{1t2$1i2Q2D0p1+2I3B0O2Y1`1q5E1r5C2*4k055K0*2%4^1V0O0T0 030J0$0l0m0b0J0Z1c1e0%1g0:0(3y4#3#0V0 0*0F3r5q1/0P2@5~5w3m0F0 0R5.1_0K5-0=0l635X0`0~040v6f4~3a0 0j0K0h0@6l53016i0C3r0J5 306o0K0X0k1e6t396i0n5?4k0J6z64015Z5#0J1b1d2n2^3;39613e6N6z5S6P0Z0p0 016-0q691S0p000m2o6c1R0J2j0m0e5,0,0Y0m0l0Z6-013y6$6O6g015`040%5}6M6A3m6C6r0Z6y7h010L0 020j0Y0f7m6P0g6C6E6G6(7a6i6L4!78787n7c2t710e1h7g6P0u0%0 5j3|7H6P7c0l0/6e7B6m7D777G6N7n7x04681d6a7k7!2(796m7p040M7v7a7,6p7k7|7^0 0o816u7~6q6s7O7a7_848a6m7Q4h7(7)7I0 7K6}7N7?7+676:880Z7=2{7@6u7_0x853u8r7/0l6b0L6d6H3B6i6k7#867j898p6P7_0A8B3B8g3.8J3#6w8V3,7y6F0Y8Z3?6J8i8x396R045$0r0W1,5L0J7E5v7a6!7H8N396*6,6-6Y3B936#7)780B6^8H6`730Y1|0g0Z0|710W8{5@7n989a0J0A2p6?2M0J7;2p1S7.141S0U7 0@0J0o0J9G0:9J0T0U963#9r9a9u0+2p0m0J2t9k6;9E9C6a6_0l0v9L9t2^0C9K6D8)0n9P4U926+990J759p6P8;5$0Aa2a3a4a5a6a59~7a7c5|8+6062914z667-8s9)ad1V8Lam7i049Lap6v0 6x8e8Oar9;7A2*6P6J8|367*9 5!8=6T5.6W5u447n8 6$at98756/8E9v6@5,9e1S6|6~9k0k71739}4r7Vaa0 7e8$3 8P7lax397_7r7ta?2/8(aB5AaD0 aF3i9s8k048m7Ma 1V8X7T44a/6m7X7Zat7%a.9a8qaj8E6b0m0N2j0e8*a`3B7_7{bz8%az7zby8R8b83bdaq6pbGbL7obKbD3?8X5obhbp7W8l0+8nbP7,9%8Falag8!0 8MaC7}a^bmavb$b1bH8w7n8zbPbUb=040nbPb|bSb0br9Dbtbv3Db_bWaH7aa00J8@8_2qb64l6uaR7*b+3?aU959^979`9s9ca!6d0J9g9i9k2m0m9nck065^cqcv9TaY6^bubw9h2qb(0J9FaA9h9JbN8)9I2^9@5k1/9S7)9UcR9X9Z0Y9#cUb(8G6d9+8t9/cZ1e0J0x2^9?9QcK2@6$a-4*0c5U0l2A2#da5D1z5F2D2G2B0k1Qdd0c5E11dn0+0-0/2|2Q390k0p0u1g2m5:2o0h1g0m742|0NdwdydA2n0A9l1%040HdFa_1w1r040#5L6~0j008)2t0J0R0l0e2l1g0J0v0p9X7kd)d+0:6`bG9/0L9Xd`c!d*d,9K1S7k0n0d1t2|dndf.