Exercices - série 2
Exercice 1 : recherche dichotomique
Recherche dichotomique
Bob a voulu écrire une version récursive de la recherche par dichotomie.
Malheureusement son code ne fonctionne pas. Corrigez-le.
.128013.128073=6R;9/f,5Fth_wgn]c[TC8e.xy uo4bv1kdP)is(qp+a7-0érlI2m:3S050K0y0m0T0N0Z0O0C0t0Z0T0O0O0c010m0N0R010406050O0D0$0$0T0Y0B040)0E0Z0D0}0E0r0C020T0$0R0f0C0e0y170Y0Q0D0y0O050h1416181a120R04051F1y1I0h1F120K0N0H0=0@0_0{0@0r0q0D0T0q0y0V0R0B0m0n1h0C0n0N0q0n0Z1.0n0m10050-0G0Z0y1R0^0`011-1/1;1/0m1`1|1^0m0Y1G1)0=1d0O0R0T0r0{0#011~1T010i0/0y0r1l0y1^2g2i2n202q1|2t0$2v040a0C0L0Y0E0R0E0O0N1g1i0+2e0Y0Y0y0t2Q1y2x0r1G0h1)2$2a2c2b1_0K2z1U0N0r2s2N1^1O1Q0?1 2:2=0r0E2_1^0R2V1G2!2$36132h1i2{2o2 0Y170Z1^0T1,2V0i0{030o0o0t300y1;2~0E0V0W0V0I100C0I1y0T373a11392y3c203e3g3i3k0y3m013o3q3s3u2?3x0V2l040C0#3E3G2i3I2!2/013N0T3h1G3j0n3l3n3p3r0+3X2 3Z0(3B0(3)2Z3H123-3L0{3:3=053@3_3T3{3W2;3Y3y0F3B0F441z463J3b1S3M0E3f3;3P3^3R3`3V3}4j3 3y0k3B0k4p36473a3.4b4z4f3U3|3t4F3w3y0d3B0d4L4r484u4a4w3O3?3Q3S4T4i3v3Z0U3B0U4$3+4N3K4)3/4+4y4-4A4/4h4E4=3y0x3B0x4`2#4|4t2|4 4x4c4e4B4g4D4V570V0g3B0g5c3,4O495h4,4d4.4C4U3~4X3z0W100I0W5u5e4P505j5B5m5D4W3Z0I3A045V5L4s5N5i4R5l4:564k3z3#0I3(0h3F454{5!5x4Q524S555o5+0I415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3d5O5%6o5S5p0I4Z5X4#6v381L341y2_2)0K2c2.5x4U2^1P1G330y353H6i1G4U6!2y0N0K0{3p2!5U3P6+6-6p5T3y3A0C2D0y6?6D5~1^6h6y200J100+0i6$665g0p3B79734a0i102V0t0n0y0Y7k0y7e5w4~0 040P7q4}6l100:0m7w5f2o7t0j6$0C7a3d100A7C3.7t0M0%6$126w2#5!6=016.3a3Z3#5A7X5|6q3y2l6{2u6~6c4G3!715;7f017c3$0C7|7N5x0O0K1001837S7N7(0o6/3y607%6,7Y6@5p417-2E7/5*7;8b727r5g803B7|0C0w0,0m1}0i1h2X0N1+2V0r0H0E0N1}0v0Y1v0C2O0C0A0C1w0m0C0K2i0;7A0j8R8T0l3;0O1}2O2 0r857U6)1i87890V6e8c8k5}7;4m8i6}8e6 8{7?8/3.8r7{7|2J0X3r0r1O2Q0C0%8P9e0C2;0m8Z7A9h1;0O8T0,0C2a0N0X1}2s0C4w0K2V0=2K0N0_2i7B8.7T383-8;7!4H6;8d7)6^0V4I8}8_7*9T927J20958t2I2N0m9a9c8C1i9f0t8w8y8A9d8E8G8I8U0D9s0B0R1}0G0E1d9v8,9I869Q889N0V6G8^8 7:5F4Z9Vae8lag9Z7^9$8t83018-9K4O9M2i4?9P9W9S4@ai9R5p4@2$3F9J6#9La88=594-87905F59aC8f5+aN3)9%9!0{75040N788.7I7^0r0G7z2s7~7s107v8.aZ3/7z9pa:5g7P7Ha^0E100c0ca 7^0$0N105Ka@7^7t7Ra6bbauaLaa5raOa8aQ3Z5raTbn3ybkaX9%8ta^a#2V0m0D0Ya536a*8p2o0J0t108$0:7pbfat6*biaw6_5Hblaz6E5Hbqaf5UbUbu7}a+100$b5bG20b104b4a)a^a,a.bDaJb-0{7ta?bP7D3Ma`9Hb 7O100Mb,7x2ob/0h0hc8c00{b7105/4Ma76?8=5Vayaj8`5FcobZak5U5Wb%bFc97410a%ce4Pc2a|7E100ucHc104b+bgcAb|100scE5xb/b3cU677LcLcR04beckcP8:bR0r5U7$3jaPb!6_7,6|bW5~7$63bvbw7^by0,bBb_3+czcf01bI108K1vasb`bQcmaa5 cpaD5~8hc^cq9XdhaG96d53.a#4Va(bEb?cGc*c504cKdA5^b*c#017tcTb=7^b/020Z0m0fcY7y047MdEa;c%dc3+7Wc,5U8@c:bmc=3z8|dmdj7;0I8@c|c}ds5xd0bAbCdS7K047j7l7n7ldHb}dH0rdzc45x7tdDe9cZcNd}b.100Segcgb85Xe4100%0s7GdLb{a_dUeo04c7bOddc+dfbS3z6sadd/cs9Ud.aUd:eGd?b(eudubMexc(4rdAavc-6_acd)c_d:aheLbr3zacePbvbx7id1d|etcQeve07m7oexb~eBcF047Aex0ueVd!b)efdWa}cSesdxf7dVedfaeydZ7V0h6(1J6M0h6O1y0m6Qfr2,2%0T1{6Z6N6W1E935x2V0$0o0i0T0J0y0o0n601q1s1u1w9e791L3I1F0b0C0!0Z0C170r1u0.8T1|0;056(bzd21y6(0C0zf^1J3Ifp0,0.0:04.
Exercice 2 : parité
Parité
Compléter la fonction suivante qui doit être une fonction récursive.
⚠️ Il est interdit d'utiliser %
.128013b=6v9;/f135dkh,FP)is_(wgncp:aTE7-0Cér8elxy2 mutoS4050m0N0V0D0t0O0u0S0A0O0D0u0u0c010V0t0B010406050u0U0T0T0D0L0Q040X0W0O0U0?0W0z050h0}0 11130{0B04051j1c1m0h1j0{0m0t0e0+0-0/0;0-0z0y0U0D0y0N0H0B0Q0V0o1a0S0o0t0y0o0O1O0o0V0_050$0b0O0N1v0.0:011N1P1R1P0V1X1Z1V0V0L1k1J0+160u0B0D0z0;0R011#1x010i0(0N0z0D0T0N1V1`1|211%241Z27290_0a0S0r0L0W0B0W0u0t190z0S0!1^0L0L0N0A2u1c2c0z1k0h1J2H1;1?1=1W0m2e1y0t0z262r1V1s1u0,1$2R2T0z0W2X1V0B2A1k2F2H2.0|1{2v2Z222%0L100O1V0D1M2A0i0;030v0v0A2(0N1R2$0W0H0j3c0_0S0j1c0D2/2=0`2;2d2@1%2_2{2}2 0N3101333537392U3c0H1 040S0R3i3k1|3m2F2Q013r0D2|1k2~0o303234360!3B2%3D0k3f0k3J2E3l0{3N3p0;3Q3S053U3W3x3Y3A2S3C3d0Y3f0Y3+1d3-3n2?1w3q0W2`3R3t3V3v3X3z3!3}3$3d0l3f0l432.3.2=3O3=4d3_3y3Z384j3b3d0d3f0d4p453/483;4a3s3T3u3w4x3|3a3D0G3f0G4G3L4r3o4J3P4L4c4N4e4P3{4i4S3d0M3f0M4X2G4Z472!4$4b3?3^4f3`4h4z4.0H0f3f0f4?3M4s3:4{4M3@4O4g4y3#4B3c0I0_0j0I584^4t4%4}5f505h4A3D0j0j5m3h0h3j3,4Y465r4|4v4 4Q4-3~3c3F0j3I5D3K4@5H5b4u4)4w4,525O0j3(045(5p5W4#5Y5e4*5g4R5%405*425T5F5V4I4`5/4~4+515i5y4m5*4o5{445G5~2^5s5K625w530j4D5*4F694q5-5 6e5Z5L5#643d0j4U5*4W6n4H5a5.6r5:5!635x6w4:5*4=6B6b6D6q5J6s6g5?4k3c555*576O5}6Q6d6S6G6t6I530R5l046.5,6c496)615=5N6W0R5A6:5C5E6a6$4!6R5d6_5v6V5j0R3F7b581n2,1c2X2K0m1?2P5b4y2W1t1k2+0N2-3l5|1k4y7u2d0t0m0;342F5y3t7B7D6,5%202i0N7J6h7L2H5E6?0;0n0_0!0i7w6p220x3f7!7U3P0i0_0N0u0V0v1{0t0L7)6%1%0^040w7^742^0_1b727z4_227{0C7w0S7#3q0b0_2S0V7~857`0_0s898b0;0W0_0H020y0V0g8m7*0z8d040b0W168h3O877w0{835H7I017E2=3D3F5e8L6u6J3E7M287O8M7K6|1V5{7*7%3G0S8+8E5b0u0m0_018=8H8E8S0v7F3d5)8R7C8Z7Q6W3(0S7N7P793%8$7T7_0;8/3f8+0S0J0#0V1!0i1a2C0t1L2A0z0e0W0t1!0E0L0U1!2s940S7.0V0S7=0L0p0S0q3R0u9z2S1a8@8J3N8_8{0H5^8~966{5j40948X9Y5$6W9W8%9b019d8*8+2n0K360z1s2u0C9B9D0S0U2v260?0N0L9F2r2t0t0i0S0W0U940U0O9Q2:9S8 8N1|3D669X90974l8W299(6v0Han9,7 1%9/9f2m2r0V9@9_9o0z9{0-0S0e3R0N0Ua42A0Vab0L0z0K1!9}2x0V0Q0B1!8B16aX826o9R4s9T8O4C7Haj8!5j4D9$atap9Z3D6k3+7*aB9f0F0P0N0T0B1Z0S88838Iaha/a@9U6yao8T534Ua{8Ybl5Obj5Tbe7vai7J9U6Lbka^3D4:boau8Ubzay8i9c8:9:0S8s8ubO0gbQ9C7/7;0%0L0w0Y8lbd8^bha;54a?bF5355bEa}9)5j6Yb19-b38+9w9yagbvbgbxb(5nb*b/avc1b.bq6Wc17S843Ob^bN8tbRcfbS9DbV7?0w0lb!a-bf7Ab%al6w6~bA915j5zasbpbBcu99cb8.bLaC9K0)0Nb|3L8Kcs0z5y8Q2~8_cxcRcAb+5%8QbIcccH9fbQc)cfbT7:9G0w0Ico45a.crb ct3c8}cTa@cV6w9395c38U5(cE8n9.c%b_9xcLb#c?2va:c_0j9Wc|cYc89#d1c7cy9+3jbucNbw8Z9U0jandjd26i4mc6cC3cax9aazbK9e8+8=01cM2GcOc^cQ6wb0dzdo5ya`dndE6jcEaCd67W041$a38g838a8x818w9-8p04bQ0cd=dI010T0t0_5od.d67{0p8-4#0u6~00a07/9~a00za2a42q2s0?a9abad0O00dOcbdfdS3cbjdVd!bndZc~eud$9fd(8e7Ze2d:04a,3ld/d?0_0cd`eH9-d~e0e64`8GdccqdecP5ybzeweA0jbDezaq3cbH3jaCd%7*d)aSaQeK3LeMd|0n0A0_b`dbcpb}c@dvc0b=e(e-0jb-e,a~6wb=5Te=9-d)4zeG2.e|bJ3Pd;eRd|d@ePd{fpeT5*eV860_bcf3dtb~f6c_6.c2dW3dfJdDeAfJcae;eDe?0_e^aVfw3Oe~0_cJ9MeqdQfHet6}fKdEf,fOe-f,fRfTfj7-cKfA8j04fDc=eZ0Ses8PcSg1c}f;1 f:fe3Ec!e:fSfofZfV0#e_fY5X7-bU9Gf{0;7{7}dd4tfrfnd6d@0Hgk4#fy5Sg05b7{c;5G8J0h7y7f7t7h7q1c0V7kgQ2N2I0D1YgN0h7i8I0!0$0(0u04.
Indice pour la parité
n et n - 2 ont la même parité (tous les deux pairs, ou tous les deux impairs)
Exercice 3 : longueur d'une liste
Longueur de liste
Compléter la fonction suivante qui doit être une fonction récursive.
⚠️ Il est interdit d'utiliser len
.128013b=6v9;/f135dkhP)Lis_(wgn]c[p+:a7-0ér8el.y2 mutoS4050m0M0U0F0s0N0t0R0A0N0F0t0t0c010U0s0C010406050t0T0S0S0F0K0P040W0V0N0T0=0V0y050h0|0~10120`0C04051i1b1l0h1i0`0m0s0e0*0,0.0:0,0y0x0T0F0x0M0H0C0P0U0o190R0o0s0x0o0N1N0o0U0^050#0b0N0M1u0-0/011M1O1Q1O0U1W1Y1U0U0K1j1I0*150t0C0F0y0:0Q011!1w010i0%0M0y0F0S0M1U1_1{201$231Y26280^0a0R0p0K0V0C0V0t0s180y0R0Z1@0K0K0M0A2t1b2b0y1j0h1I2G1:1=1;1V0m2d1x0s0y252q1U1r1t0+1#2Q2S0y0V2W1U0C2z1j2E2G2-0{1`2u2Y212$0K0 0N1U0F1L2z0i0:030u0u0A2%0M1Q2#0V0H0Q0H0j0^0R0j1b0F2.2;0_2:2c2?1$2^2`2|2~0M3001323436382T3b3b3f0Q3i3k1{3m2E2P013r0F2{1j2}0o2 3133350Z3B2$3D0k3f0k3H2D3l0`3L3p0:3O3Q053S3U3x3W3A2R3C3c0X3f0X3)1c3+3n2=1v3q0V2_3P3t3T3v3V3z3Y3{3!3c0l3f0l412-3,2;3M3:4b3@3y3X374h3a3c0d3f0d4n433-463/483s3R3u3w4v3`393D0G3f0G4E3J4p3o4H3N4J4a4L4c4N3_4g4Q3c0L3f0L4V2F4X452Z4!493;3?4d3^4f4x4,0H0f3f0f4;3K4q3.4_4K3=4M4e4w3Z4z3d0I0^0j0I561m2+1b2W2J0m1=2O594w2V1s1j2*0M2,3l3*3J054w5D2c0s0m0:332E3D3e4L5L5N4 5g5Q1 2h0M5U5f4y5X2G3j443M0n0^0Z0i5F2F5+590w3f5;5J4@2@0i0^0N191A0M0T0K5`5?4Z0@040v664G4^0y0^1-0M0F0T6c58680^0E5`0R676e0b5 0s0t0U6l4Y4^690q6q6s210V0^0H020x0U0g6E6d2@6u042R6y425G6P1$696p6V4=6z2u5T015O2;3D1~5S5M6*5V5%3c1~0R5Z5#4P3|3E5)5{3M5^040R746r6#70590t0m0^017d5`0`775+6)6+1{3#3t7j6=513$6_275!6;5$7q1U0h5*6X0:7a3f750r2}0i192B0s1K2z0y0e0V0s1Z0,0R601z0T630K2v1Z6h6j7f6%0R7o5P3}7n6:4*506}3~7s286{4+7=7y7A6m4^7D73757d017(7h3L7+6,4j7.7_7;4i0H4k7@7u7:5W8a6 756r7B3N0^350C7R0u7$6k778o7~6G0^0c6O8A3q6R1Q6x7)59696b868F3/6g0F1X6i8x2/8p6C8E6A210A5R032l0V646_1Z1`0)0m0J1:0T0s2z0R8w858W4q887l4A8b7v6|8e4B8h8c8k0H4B8m756F1$5-6S5:8y9d8Q048s8u8`9i8p6H040c8D9p8P01690B0z6!4o7)8~0y4R918j6?0H4S96927`8e4S9b8n749j019f2z0U641a9v8!1$0S0s0^5m777g8|5K7/0u7,0H4.6/979J4.9M9I519@3H8n9U9f370t0M8K6n049B438O9/5U9=539^9N8d5h539|7p6}aga09S9T8p6f9l2o9n8S1Y7%ac5|1$9r0Oa76e0^2p0CaG218M6D9,9D9:9=5l9Han8eaTam7w6}aT9R9Sa20^9X9Z8ZaC0:9(5ka,3M9r0Da;59au7V6264aL6Y0^8N9.a-8qav8t0M8vay8Ua~0:8YaP7h0h5I5o5C5q5z1b0U5tbm2M2Hb92G5r7g0Z0#0%0t04.
Indice pour la longueur d'une liste
Vous pouvez utiliser .pop()
Exercice 4 : bégaiement
bégaiement
Ecrire une fonction récursive repeat qui prendra en argument un entier n et une chaine de caractère txt, et qui renvoie une chaine de caractères qui contient n fois la chaine de caractères txt juxtaposées.
Exemple: repeat(5, "bla") renvoie blablablablabla
.128013b=6Nv9;/f135dkh,P)is_(wgqncp+:aî7-éC0r8eèl.xy2 mutoS4050n0O0Y0F0t0Q0u0V0B0Q0F0u0u0c010Y0t0C010406050u0X0W0W0F0M0T040!0Z0Q0X0_0Z0A050i101214160~0C04051m1f1p0i1m0~0n0t0f0.0:0=0@0:0A0y0X0F0y0O0I0C0T0Y0p1d0V0p0t0y0p0Q1R0p0Y0|050)0b0Q0O1y0;0?011Q1S1U1S0Y1!1$1Y0Y0M1n1M0.190u0C0F0A0@0U011(1A010j0+0O0A0F0W0O1Y1}1 241*271$2a2c0|0a0V0r0M0Z0C0Z0u0t1c0A0V0%1{0M0M0O0B2x1f2f0A1n0i1M2K1@1_1^1Z0n2h1B0t0A292u1Y1v1x0/1)2U2W0A0Z2!1Y0C2D1n2I2K2;0 1~2y2$252*0M130Q1Y0F1P2D0j0@030v0v0B2+0O1U2)0Z0I0l0I0k0|0k1f0F2=2^0}2@2g2`1*2|2~30320O340136383a3c2X3f0I22040U3l3n1 3p2I2T013u0F2 1n310p333537390%3E2*3G0l0|0l3L2H3o0~3P3s0@3S3U053W3Y3A3!3D2V3F3g0#0|0#3-1g3/3q2_1z3t0Z2}3T3w3X3y3Z3C3$3 3(3g0m0|0m452;3:2^3Q3@4f3{3B3#3b4l3e3g0d0|0d4r473;4a3?4c3v3V3x3z4z3~3d3G0H0|0H4I3N4t3r4L3R4N4e4P4g4R3}4k4U3g0N0|0N4Z2J4#492%4(4d3^3`4h3|4j4B4:0I0g0|0g4^2K2.0O2K2!2N0n1_2S3=014A2Z1w1n5c2:3o3.3N054A5r2g0t0n0@372I3G3i4P5z5B533%4D3h232l0O5I4A5K5E1Y0i3m483Q0o0|0%0j5t2J5X5k0x0|0V5%5x4{2{0j0|2D0C0O0F0Y5.5)4%0{040w5|4K4|0A0|1e465u63255 0E5.5-6a3t0b0|2V5{685(6g0@5 0q6e5}640|0Y0S6l2?6o016c6s6A0A6i040u1@624u5k5 0s6D6L4%0Z0|0I020y0Y0h6P4$646G6I0M6Z5:1*6C6m3p6-5X5H015C2^3G3I3_0V6;4.54403H5N2b5P6=5J4C6^5U5W6A5+040V7d5-6/6A0u0n0|017l5.0~7g4u6|0v5D3g3*5G5A745R767u712c5Q4T6 7v3-7h7j7c7e0E1~0M2b0V0A0E2z1%0Y0T5^0V290_0O0M0R0V0e0Z0W0b2D7U0V0j0Z0t0-0z0X1%0Q001O2D390C0t7`310B0p0F0G2W7/0B140F2F0P2D0u0R7n6K5y7x6?1 3G427w7E4/6 427R728r6~4m0I8p7I6Q4|7i5,7M7O7Q6w0Y7T2A7W7Y6%7(0K853 898b8d8f0V7^7`7|2y0n7=0Y0V0M0J0C0J0Y7$8h6-7o6z7q8l7s6@4n3w7r7z554o8v7D7y7F8z4o2K798D258F7L7d7l018i7p8k5I7t0I4F8q958s8z4F93736}5S4E789e6f9b1*5Z040t5$6-9B6!2{666)3Q6S040c0c9N5k0W0t0|0L9T5~0|6d8?8j2y7r9m4W9p9w7A0I4W9u8x9x9:9z7e9`9J6*0@9E2D0Y0X0M672;9|3Q0u5F00009i8^9k749m4=9-75554=9=9q8y5Lah3L9`6t259E3b0u0O9Z4|6,4s9(6{8`9m57ai906 57am9.55aHar9{7dat9D5?0(a2a43oa65k65048Kaz259P0Da)3taV5^5`aD6M0|619j9}3R9M9IaT0@9P0Ia-0@9V3ja=9!046ra}6E6v6xb6aA0|6O9%6/0i5w1q2/1f5f1f0Y5hbq2Q2L0F1#5dbo5o7o0%0)0+0u04.
Exercice 5 : La tête à Toto
La tête à Toto
Compléter la fonction récursive toto telle que :
toto(0) renvoie '0'
toto(1) renvoie '(0 + 0)'
toto(2) renvoie '((0 + 0) + (0 + 0))'
- etc sur le même principe
On garantit que n est un entier positif ou nul.
Compléter ci-dessous
.128013b=6v9/f135dkhP)is_(wgqncp+:a7-0`êr8eUly2 mutoS4050l0K0S0C0q0M0r0P0y0M0C0r0r0c010S0q0z010406050r0R0Q0Q0C0I0N040U0T0M0R0:0T0x050g0`0|0~100^0z04051g191j0g1g0^0l0q0e0(0*0,0.0*0x0v0R0C0v0K0E0z0N0S0n170P0n0q0v0n0M1L0n0S0?050Z0b0M0K1s0+0-011K1M1O1M0S1U1W1S0S0I1h1G0(130r0z0C0x0.0O011Y1u010h0#0K0x0C0Q0K1S1@1_1~1!211W24260?0a0P0o0I0T0z0T0r0q160x0P0X1=0I0I0K0y2r19290x1h0g1G2E1.1:1/1T0l2b1v0q0x232o1S1p1r0)1Z2O2Q0x0T2U1S0z2x1h2C2E2+0_1^2s2W1 2!0I0}0M1S0C1J2x0h0.030s0s0y2#0K1O2Z0T0E0V0E0i0?0P0i190C2,2/0@2.2a2;1!2?2^2`2|0K2~01303234362R390E1|040P0O3g3i1_3k2C2N013p0C2_1h2{0n2}2 31330X3z2!3B0j3d0j3H2B3j0^3L3n0.3O3Q053S3U3v3W3y2P3A3a0V3d0V3)1a3+3l2:1t3o0T2@3P3r3T3t3V3x3Y3{3!3a0k3d0k412+3,2/3M3:4b3@3w3X354h383a0d3d0d4n433-463/483q3R3s3u4v3`373B0D3d0D4E3J4p3m4H3N4J4a4L4c4N3_4g4Q3a0J3d0J4V2D4X452X4!493;3?4d3^4f4x4,0E0f3d0f4;3K4q3.4_4K3=4M4e4w3Z4z3b0F0?0i0F564?4r4#4{5d4~5f4y3B0i3c045x5n445p4`4t4}4O4+3|3b3D0i3G0g3h3*4W5C594s4%4u4*505J0i3$5z3(5O3I4=5S4Z5U5c4(5e4P5Z3~5z405(5Q5*4G4^5-4|4)4 5g5w4k5z4m5_425R5|2=5q5F605u510i4B5z4D672-1m2)192U2H0l1:2M594w2T1q1h2(0K2*3j5`1h4w6C2a0q0l0.312C5w3r6J6L615v3a3c0P2f0K6R6f5Z1S5_6a1!0m0?0X0h6E5+4^0u3d6.6(3/0h0?0S0T6{6?584Z0=040t6~4Y5}0?18682D6/1 710p0B6E0^796H2s6Q016M2/3B3D5c7l5X623a1|6W256Y7m6S517q6%6 6:3d0P7I744@1 0r0l0?017Q0L2Q0P0h172z0q1I0S351W0P0w0R1X7f7i7h2-3L7s0s6N3a5#7r6K7A6!4i0E3$7x266Z5;7|7@5(7-6D7/7_7n1_3B5?7^815I7|3~7 7z7t6T396$5P6@017N7H7I0E0P0G6{6{0t0F0p0G0P2x0x0e0T0q1X0G000F000G7g7K0P7:7=0E648e7`825h4k8j8f5Y7|8W7E757M7O3E7I0P8v8x6|0T0t0i8C8E238H8J8w008A0P0A0P8B8O8Q7i5C8T7o4A6P897B5J4B8$8Y8g5h6i3)8q8s8/8u8w8y8^0O8{8F8~8K9192948B930P9C950p0p977,8R9b8b3a4S4L7:7{5h4S9j8l519R9o7F8-8t8;0P0Y0y0P0`0I0P7$0Q0H260P2(2P0y0;0K987.4q9O0x3B4.9S9f9Ua31}6X8%7u0Ea43H863J9a9f8U53a5ab8m539X9g7|al9#8,1!9q8:6W9*0r0S0P0R2s230:0K9/2n2p0:6-9M99886R8U5l9ean6g5jaqa76U5j2E8p9$aw8.ay7Q019~87a0aj9c3b5y8X9Y5Z6Vaa9k8(5h5x8o3kaPa:aRa=5MaUa}acb7aY8Z5w7D3hay7b6)0?0qaN2+0Pbi3/776Ebo8q0T0?0c0cbsbp010Q0q0?5mb3av0.717+4o9Na;9P3b7@2{9Tbd6U7~a|a_7|5!b1aybh8q6*042x0S0R0I78bnbA0r5y8M00a.ahaQ7AaS8dbRa6bT3b8ibWara 8d5(b$a(0.b(350r9}bG7L1!bJb^7ab`8aa26U8Wb~aV5Z8#c3aZ3b8*bgb#7J8q0x0?0Q6|blbzbubwcHc93N6`8@8R597173cf4rbr7ibtcLbv040EcKbHbBbD5zcP700?0pcj7j8SbNcn3b9ncqb98m6ha97ycrbY9nc7czcXc%b(b*b,b.3jd4cg0.b;0?91b@cWbAcZ0Ac$dccM04cEaMdm3Mdkds59de04009Fdhb/cI04dldicBcDcFbmdadj0?dFdCcLdx009Kc/196G1k6o0g6q190S6sd#2K2F0C1V6B6p6y7h0X0Z0#0r04.
Exercice 6 : Test de palindrome
Palindrome
Un mot est un palindrome s'il se lit de la même façon de droite à gauche comme de gauche à droite.
Exercice
Écrire une fonction récursive est_palindrome qui prend en paramètre une chaine de caractères mot et renvoie le booléen True si mot est un palindrome ou False sinon.
Premiers indices
- Le premier caractère de la chaine
mot est mot[0]
- Le dernier caractère de la chaine
mot est mot[-1]
- Pour une copie d'une tranche ("slice" en anglais) du second jusqu'à l'avant-dernier caractère d'une chaine
mot, on peut écrire mot[1:-1]
Derniers indices
- Si la chaine fait zéro ou un caractère, c'est un palindrome.
- Sinon on peut comparer le premier et le dernier caractère.
- Enfin, un appel récursif permet de répondre sur le reste de la chaine.
Palindrome
Compléter ci-dessous
.9888.128013=6R;9/fF5,th_wgn]c[TC8e.x!yà uo4bvç1AkdP)is(qpa7-0éDrèl2m:3S050O0y0m0W0R0(0S0E0t0(0W0S0S0c010m0R0V010406050S0F0*0*0W0$0C040-0G0(0F110G0r0E020W0*0V0f0E0e0y1b0$0U0F0y0S050h181a1c1e160V04051J1C1M0h1J160O0R0J0_0{0}0 0{0r0q0F0W0q0y0Y0V0C0m0n1l0E0n0R0q0n0(1=0n0m14050;0I0(0y1V0|0~011;1?1^1?0m1~201|0m0$1K1-0_1h0S0V0W0r0 0)01221X010i0?0y0r1p0y1|2k2m2r242u202x0*2z040b0E0P0$0G0V0G0S0R1k1m0/2i0$0$0y0t2U1C2B0r1K0h1-2*2e2g2f1}0O2D1Y0R0r2w2R1|1S1U0`232@2_0r0G2}1|0V2Z1K2(2*3a172l1m2 2s330$1b0(1|0W1:2Z0i0 030o0o0t340y1^320G0Y0k0Y0L140E0L1C0W3b3e153d2C3g243i3k3m3o0y3q013s3u3w3y2`3B0Y2p040E0)3I3K2m3M2(2?013R0W3l1K3n0n3p3r3t3v0/3#333%0,3F0,3-2%3L163;3P0 3@3_053{3}3X3 3!2^3$3C0H3F0H481D4a3N3f1W3Q0G3j3^3T3|3V3~3Z414n433C0k3F0k4t3a4b3e3=4f4D4j3Y403x4J3A3C0d3F0d4P4v4c4y4e4A3S3`3U3W4X4m3z3%0X3F0X4*3/4R3O4-3?4/4C4;4E4?4l4I4_3C0x3F0x4~2)504x30534B4g4i4F4k4H4Z5b0Y0g3F0g5g3:4S4d5l4:4h4=4G4Y424#3D0Z140L0Z5y1N381C2}2-0O2g2=5B4Y2|1T1K370y393L493/054Y5)2C0R0O0 3t2(3%3E4;5;5?5r5I5_2q2H0y5}5H4!602*3J4w3=0N140/0i5+2)6a5B0p3F6g5/5j3h0i141A0m0o2l3y0O2O2I6m6i5213040T6A4,5k0r140*0G0m6G5A6C140Q0+6m164u5,3;5|015@3e3%3)5E6Z595s4o3(612y644^6-6(0h696H2s6k3*0E6~6O515k0S0O1401760#0!0m0y3j4n0E2S0E6L0m0E6s0E0F1m6v2^6x0G2I76016U701m6*0o5^3C455{5=6!5~667B6/2I6;5a6-7C3-6V3c6Y7E6#2m3%4q7D7L6,4K0Y4q0E627Z5 4p1|6^6}6 6`246c040R6f6W2)0E6B6I0I142G7w3=6D6F7`6n4T6K6M825B6D0Q6m7|7;0 0G14020(0m0f8f7}2s0*0R143,868q246D6T867Q5*7S5}7A3B3T7y655t4M7(6:7F8K6-4M687/6~8V8x0 7?2Z0m0F0$0r8p8h010N0t140v0$1z7v8w8E7F8G4%7Y8P6=7#4%8N7K8|7M8~7-3J8V8g6P5k7?3x0S0y8b6Q048A4Q827y8G4{8{6+7+0Y4{9063927!5J9n3-97978X8+147^8)993h896N8?9H8y140u9f5k8s145O9L712s6D0s9G9W248j040B0c9!6o3Q9J9Q9X9O9/9$140Y9=0 9S043H9V9,0 9Y9i4v9~0E9l6$5c8I7T7G5t5d9t7*7H0Y5d8T9Aak989#8Y148!8$8(86am9 8+8-040j3^9d8=7R4Sa67V3C5v9oab6-5vae9v9qaI9zal9C9b0@9ea48c14a24 9kaa8G5Na9af5ta)aN9paga)ajal9B8*8Z0:ar9+88046s6u3^7p6yaWaDan01849_3?9.aX9g9Pbc9R8t9|b98zb99%9^bf8rbh9}b5av9Y8e8B6A0h5.5Q5(5S5#1C0m5VbE2:2+0W1 bB0h5T1I875B2Z0*0o0i0W0N0y0o0n7C1u1w1y1A0Ea!6h1P3M0/0;0?0^5B337a0E0O0!0V1^0!2z0E2P2w8i0V2w144b191w1e0M1j2Z2X2Z2#0R1/2Q0}0RbL2%c81Gb.1T3=1Z1#1%1)1+1-1/261@1_1{bQ522F2w2y140P1,1.as3c5%6n3.6hbz8@7U0r0Y0d3Da*aO66cY3Ea.aK43c%2q575G8}3Ac,8TaT6d3Vb96|7|bo3Q6qa~0S6t7o0r7q6zc}a01485bsa}7hbj6Rb+3Ma4aFcWcY6(3n8Jc:cX6.c)8Qc+drc.5qdtc;6.c?8*0S3)01787a7c2_7e0R7g6M7jd17l7nb1d4b37ubwdia%6$cY7Odnaadydq45dsdpd!c-4Wa/4_d-8T8C6XaEdY7VcY7X6)d%d,7$7J9ud:3$d|d.5p4@93dzd}7.a@9Mao7@7_3aau4T7 0481d7b7d9b96J04ddep8da|5B9%8l8ney529{8vdbaY9haC8Dd_8FdZ8HaJd(cY8M7)c#d;8H5Fdxe08SaRakc@04aq8%eD9aax8/8;dWdbdjdq8`d~a+e5cXe2e`du8 dwe99we@958Ue(9cb4eLb6bke;fa7xd`dk9rc!e4du9seUfkdz9sf1fodq9yedaSa^apa`e+at9CeteveHbdb99{9UfF5k9Ye,2s9%0c9*fB8*fD8aew9;epbmfHbqde049ZfSef010G6|2m0OfN9-d0d2dSd5f9d^fberepfU9KfK9:04beg0249{brfe83aZbl9@f!5Mf$0sbv9j8wby3w2*cPbC0J3M1Jb$1c1y1l0^b(0E0{b_0y0F0A0R0%2I0E2l0$11210O0F7|5.f.1C5.0E6F5.a d3f^0T7h0u0L0+3DgggRgl0Q7(219d0$3n0!0J3^0Fb~7j1mcKcy1mgx7f5-glg!0Z0s0EfQdM0m0ug(g*0/3*7kg=g@0!0E0DgOgle/aWgS0Thg1i0W2UgH1c1A9d0F9d0Q0z1Ndhb/0=0@cq2~520W0O6L0r2Tch1m0p1chO1!c61L3=hLhNhP1l0Y110m2c04gs1xe:1Q1L040a0E0w0:b^0S1h1jhQhj0E0I0|gL213v0V0Ri20E010S1^0t1A2q0T2e2m0t0nb)2w0E0ig:0r0K0=0Sg,0r007k2l0^3V2u0t0Wic0l7(0Ghz0E0J7b2O0r0^b|iH0;0$2=7m210*791.2WiOiy0iiAiC210WiJ0tgyb)7p0Ric0ShCb-6VbO5S0:hG0S04.
Exercice 7 : triangles
A faire
Écrire deux fonctions (procédures) récursives triangle_bas, puis triangle_haut prenant un entier n non nul en paramètre et qui affichent un triangle. Ces fonctions ne renvoient rien.
Python Console Session>>> triangle_bas(4) # affiche un triangle tête en bas
####
###
##
#
Python Console Session>>> triangle_haut(4) # affiche un triangle tête en haut
#
##
###
####
Triangles
Compléter ci-dessous
Solution
Attention
L'ordre des instructions est bien sûr important !
Pythondef triangle_bas(n):
"""Affiche un triangle tête en bas"""
if n > 0:
print("#" * n)
triangle_bas(n - 1)
def triangle_haut(n):
"""Affiche un triangle tête en haut"""
if n > 0:
triangle_haut(n - 1)
print("#" * n)
Exercice 8 : Si vous avez du temps ... problème de la grenouille
🐸
Une grenouille doit monter un escalier. Quand elle saute pour monter, elle monte de 1 ou 2 marches.
Combien de chemins différents existent-ils pour un escalier de n marches ?
Vous êtes en complète autonomie pour cet exercice facultatif.
👉 Montrer au professeur votre solution, ou vos tentatives.
La fonction nbre_chemins prend en paramètre un entier n que l'on garantit strictement supérieur à zéro.
Compléter ci-dessous
.128013b=6NR;v/f135dkhA,P)is_(wgqncp+:a7-0Céreèl.y2 mzutoS4050n0N0X0G0u0P0v0T0C0P0G0v0v0c010X0u0D010406050v0W0U0U0G0M0R040Z0Y0P0W0^0Y0B0T020G0U0D0g0T0f0N120M0A0W0N0v050i0 1113150}0D04051A1t1D0i1A0}0n0u0h0-0/0;0?0/0B0z0W0G0z0N0I0D0R0X0p1c0T0p0u0z0p0P1)0p0X0{050(0b0P0N1M0:0=011(1*1,1*0X1=1@1:0X0M1B1!0-180v0D0G0B0?0S011_1O010j0*0N0B1g0N1:2b2d2i1{2l1@2o0U2q040a0T0s0M0Y0D0Y0v0u1b1d0$290M0M0N0C2L1t2s0B1B0i1!2X2527261;0n2u1P0u0B2n2I1:1J1L0.1`2+2-0B0Y2;1:0D2Q1B2V2X310~2c1d2?2j2`0M120P1:0G1%2Q0j0?030w0w0C2{0N1,2_0Y0I0k0J3s0{0k1t0G32350|342t371{393b3d3f0N3h013j3l3n3p2.3s3u2g040S3y3A2d3C2V2*013H0G3c1B3e0p3g3i3k3m0$3R2`3T0I0l0{0l3Y2U3B0}3$3F0?3)3+053-3/3N3;3Q2,3S3t0I0!0{0!3~1u403D361N3G0Y3a3*3J3.3L3:3P3?4d3^4f0m0{0m4k3141353%454u493O3=3o4A3r4f0d0{0d4G4m424p444r3I3,3K3M4O4c3q3_0H0{0H4X3!1E2 1t2;2!0n272)43014P2:1K1B2~0N303B3 4?4P572t0u0n0?3k2V3_0k3J5e5g4y4Q4-4f5k0T2y0N5n4P3@4S3u5k2X3z4n3%0o0{0$0j592W5E4 0y0{0T5K5c4o2@3(0j0{0B0b2Q3l0p1m2,1s4l4?4Z5U0`040x5R5M4!3(5X5;5,2j5.0t0F5R0}5*5L3$5m015h353_3V470T644b4z5q3U2h5u5w4,4e6g5C040T6p5Q5`1{5G040u5J616o5=5U0B5^6y6r4J4 0Y0{0c0c5R6F3E5?0U0u3w5_6G5?5.5~6y6033635f650w5i4f3{4(6c5o5y3_3{5t2p6j6e6l3`1:0i3z6q6~6N5T2j6u2Q0X0W0M0B6M6A2j6Q6S6Y6T5d6$662d3_4h6,7h6.4R7k6h6?6%5x7p4f7l3Y6~7a6t0{4Q6x31704K6D7F7A0?6I046K796s0?7c3W7f711{6W5 7U6b7n6)3u4D7m6@5p6_4D6=2z7*6/4C6{6}6 6p7K01730%76786E7`7S3X7e6y5E6-7$0I4U7)7t6k4B3u4U7.5v8c6^8e897?6o6q7`6u3o0v0N7Z4 7X846!4J87674f4/8b6d7+8l4/8h7:7v3u8E7y7^7G4 7|75777P6U6B5X5Z0N5#5%0B5)8z6O5-0{5:857Q5@047 7J8:7M0I8W8+7b6R043x8/8X5{0{0t8{7V7L0{0E967H8=8!8$6Q8(8v6V8-9i8Y8=9b6H0{8`808:829l9304958y580i5b4@564_531t0X4|9H2%2Y0G1?9E0i4`1z5S3%2Q0U0w0j0G0o8#0p6+1l1n1p1r0T6X331G3C2;3%0G0n0U1c2K0u1$0n2d1V0M0{1z9=9@9_2L0I0^0X23040q212n2T9/9S0K0%0X1^0v181a9{1d0M0L0C762J0h1^2~2{0W2K0T0W1d250O0,0z0M2d2)2`0U8!0T0n000G0D0D8s0T1p0u5t001r0X0T2c0,0n0W0T0X0Y1a0T3L2l0C0G0C0N0r0-13aP9+a?0Pat0+7!ae0u9*0,am0Ba$ar3*0u0v0L0,arat0Mav1maea%192J0Nau0T0j0Ybd0Q0T0ZaY0ha.0,ak0vak0V0-ajalan2La%a.0MaC1daIaK5t0YaN2Qa}0T1n0C5$0va`a^0/a%2Q0B0naJ0T0b0N0G0W3m0W0DbXak1hb$0Ta.bs0Nb.010D1Qaka02D1Z1#0B0Q1E3C1A0ebB0T0L751Jc11c0,c40WbC132)b)0~251c0z04aybR1wbL0n0R2yb51q2Ucw1R04ccag9F0h3C9Q0%0)0+04.
Autres exercices :
Exercices CodEx sur la récursivité
Crédits
Franck Chambon
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)