From e74cab34c8a3fa4519f143a2531b786fd3ce09a2 Mon Sep 17 00:00:00 2001 From: Jonathan Toledo Date: Wed, 27 Jan 2021 18:59:17 +0000 Subject: [PATCH 1/3] traslado de todos los ejercicios de replit --- .../resets}/02-hello-world/app.py | 0 bc.json | 473 +++++++++++++++++- .../{01-welcome => 001-welcome}/README.es.md | 0 .../{01-welcome => 001-welcome}/README.md | 0 .../README.es.md | 0 .../README.md | 0 exercises/002-hello-world/app.py | 1 + .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../solution.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../{10-Two_digits => 010-Two_digits}/app.py | 0 .../{10-Two_digits => 010-Two_digits}/test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../{13-Tens_digit => 013-ten_digits}/app.py | 0 .../{13-Tens_digit => 013-ten_digits}/test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README,es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../{16-Car_route => 016-Car_route}/README.md | 0 .../{16-Car_route => 016-Car_route}/app.py | 0 .../{16-Car_route => 016-Car_route}/test.py | 0 .../{17-Century => 017-Century}/README.es.md | 0 .../{17-Century => 017-Century}/README.md | 0 exercises/{17-Century => 017-Century}/app.py | 0 exercises/{17-Century => 017-Century}/test.py | 0 .../README.es.md | 0 .../README.md | 0 .../{18-Total_cost => 018-Total_cost}/app.py | 0 .../{18-Total_cost => 018-Total_cost}/test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 .../README.es.md | 0 .../README.md | 0 .../app.py | 0 .../test.py | 0 exercises/021-factorial/README.es.md | 21 + .../{21-factorial => 021-factorial}/README.md | 0 .../{21-factorial => 021-factorial}/app.py | 0 .../solution.hide.py | 0 exercises/022-Integral/README.es.md | 11 + .../{22-Integral => 022-Integral}/README.md | 0 .../{22-Integral => 022-Integral}/app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../{36-net-amount => 036-net-amount}/app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 .../README.md | 0 .../app.py | 0 .../solution.hide.py | 0 exercises/042-Clock face/README.es.md | 20 + exercises/042-Clock face/README.md | 20 + exercises/042-Clock face/app.py | 4 + exercises/043-School desks/README.es.md | 25 + exercises/043-School desks/README.md | 25 + exercises/043-School desks/app.py | 4 + exercises/044-Odd or even/README.md | 23 + exercises/044-Odd or even/app.py | 4 + .../045-Minimum of two numbers/README.md | 19 + exercises/045-Minimum of two numbers/app.py | 4 + exercises/046-Sign function/README.md | 20 + exercises/046-Sign function/app.py | 4 + exercises/047-Three-digit number/README.md | 24 + exercises/047-Three-digit number/app.py | 4 + exercises/048-Single positive/README.md | 26 + exercises/048-Single positive/app.py | 4 + exercises/049-Ascending digits/README.md | 24 + exercises/049-Ascending digits/app.py | 4 + exercises/050-Four-digit palindrome/README.md | 24 + exercises/050-Four-digit palindrome/app.py | 4 + .../051-Minimum of three numbers/README.md | 20 + exercises/051-Minimum of three numbers/app.py | 4 + exercises/052-Days in month/README.md | 26 + exercises/052-Days in month/app.py | 4 + exercises/053-Equal numbers/README.md | 20 + exercises/053-Equal numbers/app.py | 4 + exercises/054-Order of outlier/README.md | 28 ++ exercises/054-Order of outlier/app.py | 4 + exercises/055-Rook move/README.md | 25 + .../055-Rook move/Rock Move exercise.jpg | Bin 0 -> 46884 bytes exercises/055-Rook move/app.py | 4 + .../Chessboard - black square.jpg | Bin 0 -> 41276 bytes .../056-Chessboard - black square/README.md | 30 ++ .../056-Chessboard - black square/app.py | 4 + .../Chessboard - same color.jpg | Bin 0 -> 41276 bytes .../057-Chessboard - same color/README.md | 25 + exercises/057-Chessboard - same color/app.py | 4 + exercises/058-King move/README.md | 25 + exercises/058-King move/app.py | 4 + exercises/059-Bishop move/Bishop move.jpg | Bin 0 -> 22328 bytes exercises/059-Bishop move/README.md | 25 + exercises/059-Bishop move/app.py | 4 + exercises/060-Queen move/Queen move.jpg | Bin 0 -> 19426 bytes exercises/060-Queen move/README.md | 26 + exercises/060-Queen move/app.py | 4 + exercises/061-Knight move/README.md | 25 + exercises/061-Knight move/app.py | 4 + exercises/061-Knight move/knight move.jpg | Bin 0 -> 17420 bytes exercises/062-Leap year/README.md | 25 + exercises/062-Leap year/app.py | 4 + exercises/063-Next day/README.md | 30 ++ exercises/063-Next day/app.py | 4 + exercises/064-Linear equation/README.md | 26 + exercises/064-Linear equation/app.py | 4 + .../065-Minimum of five numbers/README.md | 22 + exercises/066-Vertices of rectangle/README.md | 38 ++ exercises/066-Vertices of rectangle/app.py | 4 + exercises/067-Sort three numbers/README.md | 22 + exercises/067-Sort three numbers/app.py | 4 + exercises/068-Series - 1/README.md | 19 + exercises/068-Series - 1/app.py | 4 + exercises/069-Series - 2/README.md | 19 + exercises/069-Series - 2/app.py | 4 + exercises/070-Sum of ten numbers/README.md | 27 + exercises/070-Sum of ten numbers/app.py | 4 + exercises/071-Sum of N numbers/README.md | 30 ++ exercises/071-Sum of N numbers/app.py | 4 + exercises/072-Sum of cubes/README.md | 20 + exercises/072-Sum of cubes/app.py | 4 + exercises/073-Number of zeros/README.md | 25 + exercises/073-Number of zeros/app.py | 4 + exercises/074-Sum of factorials/README.md | 26 + exercises/074-Sum of factorials/app.py | 4 + exercises/075-Lost card/README.md | 24 + exercises/075-Lost card/app.py | 4 + exercises/076-Ladder/README.md | 22 + exercises/076-Ladder/app.py | 4 + exercises/077-Slices/README.md | 37 ++ exercises/077-Slices/app.py | 4 + exercises/078-Number of words/README.md | 18 + exercises/078-Number of words/app.py | 4 + exercises/079-Two halves/README.md | 20 + exercises/079-Two halves/app.py | 4 + exercises/080-Swap two words/README.md | 20 + exercises/080-Swap two words/app.py | 4 + .../081-First and last occurrence/README.md | 30 ++ .../081-First and last occurrence/app.py | 4 + exercises/082-Second occurrence/README.md | 30 ++ exercises/082-Second occurrence/app.py | 4 + exercises/083-Remove fragment/README.md | 18 + exercises/083-Remove fragment/app.py | 4 + exercises/084-Reverse fragment/README.md | 18 + exercises/084-Reverse fragment/app.py | 4 + exercises/085-Replace/README.md | 18 + exercises/085-Replace/app.py | 4 + exercises/086-Delete character/README.md | 18 + exercises/086-Delete character/app.py | 4 + exercises/087-Replace in fragment/README.md | 18 + exercises/087-Replace in fragment/app.py | 4 + .../README.md | 18 + .../088-Delete every third character/app.py | 4 + exercises/089-List of squares/README.md | 18 + exercises/089-List of squares/app.py | 4 + exercises/090-Least divisor/README.md | 18 + exercises/090-Least divisor/app.py | 4 + exercises/091-Power of two/README.md | 18 + exercises/091-Power of two/app.py | 4 + exercises/092-Jogging/README.md | 23 + exercises/092-Jogging/app.py | 4 + exercises/093-Length of sequence/README.md | 22 + exercises/093-Length of sequence/app.py | 4 + exercises/094-Sum of sequence/README.md | 21 + exercises/094-Sum of sequence/app.py | 4 + exercises/095-Average of sequence/README.md | 20 + exercises/095-Average of sequence/app.py | 4 + exercises/096-Maximum of sequence/README.md | 23 + exercises/096-Maximum of sequence/app.py | 4 + exercises/097-Index of maximum/README.md | 22 + exercises/097-Index of maximum/app.py | 4 + .../098-Number of even elements/README.md | 21 + exercises/098-Number of even elements/app.py | 4 + exercises/099-Greater than previous/README.md | 23 + exercises/099-Greater than previous/app.py | 4 + exercises/100-Second maximum/README.md | 21 + exercises/100-Second maximum/app.py | 4 + exercises/101-Number of maxima/README.md | 31 ++ exercises/101-Number of maxima/app.py | 4 + exercises/102-Widest fragment/README.md | 23 + exercises/102-Widest fragment/app.py | 4 + exercises/103-Fibonacci numbers/README.md | 22 + exercises/103-Fibonacci numbers/app.py | 4 + exercises/104-Fibonacci index/README.md | 22 + exercises/104-Fibonacci index/app.py | 4 + exercises/105-Even indices/README.md | 18 + exercises/105-Even indices/app.py | 4 + exercises/106-Even elements/README.md | 18 + exercises/106-Even elements/app.py | 4 + .../107-Greater than left neighbor/README.md | 18 + .../107-Greater than left neighbor/app.py | 4 + exercises/108-Same sign neighbors/README.md | 24 + exercises/108-Same sign neighbors/app.py | 4 + .../109-Greater than neighbors/README.md | 20 + exercises/109-Greater than neighbors/app.py | 4 + .../110-Number of distinct elements/README.md | 18 + .../110-Number of distinct elements/app.py | 4 + exercises/111-Swap neighbors/README.md | 18 + exercises/111-Swap neighbors/app.py | 4 + exercises/112-Maximum/README.md | 18 + exercises/112-Maximum/app.py | 4 + exercises/113-Swap min and max/README.md | 18 + exercises/113-Swap min and max/app.py | 4 + .../114-Pairs of equal numbers/README.md | 24 + exercises/114-Pairs of equal numbers/app.py | 4 + exercises/115-Unique elements/README.md | 18 + exercises/115-Unique elements/app.py | 4 + exercises/116-Eight queens/Eight queen.jpg | Bin 0 -> 47101 bytes exercises/116-Eight queens/README.md | 31 ++ exercises/116-Eight queens/app.py | 4 + exercises/117-Bowling/README.md | 23 + exercises/117-Bowling/app.py | 4 + exercises/118-Scale/README.md | 24 + exercises/118-Scale/app.py | 4 + exercises/119-lists_Maximum/README.md | 22 + exercises/119-lists_Maximum/app.py | 4 + exercises/120-Diagonals/README.md | 27 + exercises/120-Diagonals/app.py | 4 + exercises/121-Triangles/README.md | 25 + exercises/121-Triangles/app.py | 4 + exercises/122-Swap columns/README.md | 24 + exercises/122-Swap columns/app.py | 4 + exercises/123-Snowflake/README.md | 24 + exercises/123-Snowflake/app.py | 4 + exercises/124-Chessboard/README.md | 23 + exercises/124-Chessboard/app.py | 4 + exercises/125-Number of distinct/README.md | 15 + exercises/125-Number of distinct/app.py | 4 + exercises/126-Number of common/README.md | 16 + exercises/126-Number of common/app.py | 4 + exercises/127-Intersection/README.md | 16 + exercises/127-Intersection/app.py | 4 + exercises/128-Seen before/README.md | 20 + exercises/128-Seen before/app.py | 4 + exercises/129-Guess the number/README.md | 22 + exercises/129-Guess the number/app.py | 4 + exercises/130-Number of occurrences/README.md | 15 + exercises/130-Number of occurrences/app.py | 4 + exercises/131-Synonyms/README.md | 21 + exercises/131-Synonyms/app.py | 4 + exercises/132-Elections/README.md | 21 + exercises/132-Elections/app.py | 4 + exercises/133-Most frequent word/README.md | 17 + exercises/133-Most frequent word/app.py | 4 + exercises/134-Access rights/README.md | 37 ++ exercises/134-Access rights/app.py | 4 + exercises/135-Countries and cities/README.md | 23 + exercises/135-Countries and cities/app.py | 4 + exercises/136-Frequency analysis/README.md | 37 ++ exercises/136-Frequency analysis/app.py | 4 + .../137-English-Latin dictionary/README.md | 35 ++ exercises/137-English-Latin dictionary/app.py | 4 + 350 files changed, 3125 insertions(+), 2 deletions(-) rename {exercises => .learn/resets}/02-hello-world/app.py (100%) rename exercises/{01-welcome => 001-welcome}/README.es.md (100%) rename exercises/{01-welcome => 001-welcome}/README.md (100%) rename exercises/{02-hello-world => 002-hello-world}/README.es.md (100%) rename exercises/{02-hello-world => 002-hello-world}/README.md (100%) create mode 100644 exercises/002-hello-world/app.py rename exercises/{02-hello-world => 002-hello-world}/test.py (100%) rename exercises/{03-sum_of_three_numbers => 003-sum_of_three_numbers}/README.es.md (100%) rename exercises/{03-sum_of_three_numbers => 003-sum_of_three_numbers}/README.md (100%) rename exercises/{03-sum_of_three_numbers => 003-sum_of_three_numbers}/app.py (100%) rename exercises/{03-sum_of_three_numbers => 003-sum_of_three_numbers}/test.py (100%) rename exercises/{04-area_of_right_triangle => 004-area_of_right_triangle}/README.es.md (100%) rename exercises/{04-area_of_right_triangle => 004-area_of_right_triangle}/README.md (100%) rename exercises/{04-area_of_right_triangle => 004-area_of_right_triangle}/app.py (100%) rename exercises/{04-area_of_right_triangle => 004-area_of_right_triangle}/test.py (100%) rename exercises/{05-hello_harry => 005-hello_harry}/README.es.md (100%) rename exercises/{05-hello_harry => 005-hello_harry}/README.md (100%) rename exercises/{05-hello_harry => 005-hello_harry}/app.py (100%) rename exercises/{05-hello_harry => 005-hello_harry}/test.py (100%) rename exercises/{06-previous_and_next => 006-previous_and_next}/README.es.md (100%) rename exercises/{06-previous_and_next => 006-previous_and_next}/README.md (100%) rename exercises/{06-previous_and_next => 006-previous_and_next}/app.py (100%) rename exercises/{06-previous_and_next => 006-previous_and_next}/test.py (100%) rename exercises/{07-Apple_sharing => 007-Apple_sharing}/README.es.md (100%) rename exercises/{07-Apple_sharing => 007-Apple_sharing}/README.md (100%) rename exercises/{07-Apple_sharing => 007-Apple_sharing}/app.py (100%) rename exercises/{07-Apple_sharing => 007-Apple_sharing}/test.py (100%) rename exercises/{07.1-square-value => 007.1-square-value}/README.es.md (100%) rename exercises/{07.1-square-value => 007.1-square-value}/README.md (100%) rename exercises/{07.1-square-value => 007.1-square-value}/app.py (100%) rename exercises/{07.1-square-value => 007.1-square-value}/solution.py (100%) rename exercises/{07.1-square-value => 007.1-square-value}/test.py (100%) rename exercises/{08-hours_and_minutes => 008-hours_and_minutes}/README.es.md (100%) rename exercises/{08-hours_and_minutes => 008-hours_and_minutes}/README.md (100%) rename exercises/{08-hours_and_minutes => 008-hours_and_minutes}/app.py (100%) rename exercises/{08-hours_and_minutes => 008-hours_and_minutes}/test.py (100%) rename exercises/{09-Two_timestamps => 009-Two_timestamps}/README.es.md (100%) rename exercises/{09-Two_timestamps => 009-Two_timestamps}/README.md (100%) rename exercises/{09-Two_timestamps => 009-Two_timestamps}/app.py (100%) rename exercises/{09-Two_timestamps => 009-Two_timestamps}/test.py (100%) rename exercises/{10-Two_digits => 010-Two_digits}/README.es.md (100%) rename exercises/{10-Two_digits => 010-Two_digits}/README.md (100%) rename exercises/{10-Two_digits => 010-Two_digits}/app.py (100%) rename exercises/{10-Two_digits => 010-Two_digits}/test.py (100%) rename exercises/{11-Swap_digits => 011-Swap_digits}/README.es.md (100%) rename exercises/{11-Swap_digits => 011-Swap_digits}/README.md (100%) rename exercises/{11-Swap_digits => 011-Swap_digits}/app.py (100%) rename exercises/{11-Swap_digits => 011-Swap_digits}/test.py (100%) rename exercises/{12-Last_two_digits => 012-Last_two_digits}/README.es.md (100%) rename exercises/{12-Last_two_digits => 012-Last_two_digits}/README.md (100%) rename exercises/{12-Last_two_digits => 012-Last_two_digits}/app.py (100%) rename exercises/{12-Last_two_digits => 012-Last_two_digits}/test.py (100%) rename exercises/{13-Tens_digit => 013-ten_digits}/README.es.md (100%) rename exercises/{13-Tens_digit => 013-ten_digits}/README.md (100%) rename exercises/{13-Tens_digit => 013-ten_digits}/app.py (100%) rename exercises/{13-Tens_digit => 013-ten_digits}/test.py (100%) rename exercises/{14-sum_of_digits => 014-sum_of_digits}/README.es.md (100%) rename exercises/{14-sum_of_digits => 014-sum_of_digits}/README.md (100%) rename exercises/{14-sum_of_digits => 014-sum_of_digits}/app.py (100%) rename exercises/{14-sum_of_digits => 014-sum_of_digits}/test.py (100%) rename exercises/{15-Digit_after_decimal_point => 015-Digit_after_decimal_point}/README,es.md (100%) rename exercises/{15-Digit_after_decimal_point => 015-Digit_after_decimal_point}/README.md (100%) rename exercises/{15-Digit_after_decimal_point => 015-Digit_after_decimal_point}/app.py (100%) rename exercises/{15-Digit_after_decimal_point => 015-Digit_after_decimal_point}/test.py (100%) rename exercises/{16-Car_route => 016-Car_route}/README.es.md (100%) rename exercises/{16-Car_route => 016-Car_route}/README.md (100%) rename exercises/{16-Car_route => 016-Car_route}/app.py (100%) rename exercises/{16-Car_route => 016-Car_route}/test.py (100%) rename exercises/{17-Century => 017-Century}/README.es.md (100%) rename exercises/{17-Century => 017-Century}/README.md (100%) rename exercises/{17-Century => 017-Century}/app.py (100%) rename exercises/{17-Century => 017-Century}/test.py (100%) rename exercises/{18-Total_cost => 018-Total_cost}/README.es.md (100%) rename exercises/{18-Total_cost => 018-Total_cost}/README.md (100%) rename exercises/{18-Total_cost => 018-Total_cost}/app.py (100%) rename exercises/{18-Total_cost => 018-Total_cost}/test.py (100%) rename exercises/{19-Day_of_week => 019-Day_of_week}/README.es.md (100%) rename exercises/{19-Day_of_week => 019-Day_of_week}/README.md (100%) rename exercises/{19-Day_of_week => 019-Day_of_week}/app.py (100%) rename exercises/{19-Day_of_week => 019-Day_of_week}/test.py (100%) rename exercises/{20-Digital_clock => 020-Digital_clock}/README.es.md (100%) rename exercises/{20-Digital_clock => 020-Digital_clock}/README.md (100%) rename exercises/{20-Digital_clock => 020-Digital_clock}/app.py (100%) rename exercises/{20-Digital_clock => 020-Digital_clock}/test.py (100%) create mode 100644 exercises/021-factorial/README.es.md rename exercises/{21-factorial => 021-factorial}/README.md (100%) rename exercises/{21-factorial => 021-factorial}/app.py (100%) rename exercises/{21-factorial => 021-factorial}/solution.hide.py (100%) create mode 100644 exercises/022-Integral/README.es.md rename exercises/{22-Integral => 022-Integral}/README.md (100%) rename exercises/{22-Integral => 022-Integral}/app.py (100%) rename exercises/{22-Integral => 022-Integral}/solution.hide.py (100%) rename exercises/{23-list-and-tuple => 023-list-and-tuple}/README.md (100%) rename exercises/{23-list-and-tuple => 023-list-and-tuple}/app.py (100%) rename exercises/{23-list-and-tuple => 023-list-and-tuple}/solution.hide.py (100%) rename exercises/{24-class-with-two-methods => 024-class-with-two-methods}/README.md (100%) rename exercises/{24-class-with-two-methods => 024-class-with-two-methods}/app.py (100%) rename exercises/{24-class-with-two-methods => 024-class-with-two-methods}/solution.hide.py (100%) rename exercises/{25-print-formula => 025-print-formula}/README.md (100%) rename exercises/{25-print-formula => 025-print-formula}/app.py (100%) rename exercises/{25-print-formula => 025-print-formula}/solution.hide.py (100%) rename exercises/{26-two-dimensional-array => 026-two-dimensional-array}/README.md (100%) rename exercises/{26-two-dimensional-array => 026-two-dimensional-array}/app.py (100%) rename exercises/{26-two-dimensional-array => 026-two-dimensional-array}/solution.hide.py (100%) rename exercises/{27-sequence-of-words => 027-sequence-of-words}/README.md (100%) rename exercises/{27-sequence-of-words => 027-sequence-of-words}/app.py (100%) rename exercises/{27-sequence-of-words => 027-sequence-of-words}/solution.hide.py (100%) rename exercises/{28-sequence-of-lines => 028-sequence-of-lines}/README.md (100%) rename exercises/{28-sequence-of-lines => 028-sequence-of-lines}/app.py (100%) rename exercises/{28-sequence-of-lines => 028-sequence-of-lines}/solution.hide.py (100%) rename exercises/{29-remove-duplicate-words => 029-remove-duplicate-words}/README.md (100%) rename exercises/{29-remove-duplicate-words => 029-remove-duplicate-words}/app.py (100%) rename exercises/{29-remove-duplicate-words => 029-remove-duplicate-words}/solution.hide.py (100%) rename exercises/{30-divisable-binary => 030-divisable-binary}/README.md (100%) rename exercises/{30-divisable-binary => 030-divisable-binary}/app.py (100%) rename exercises/{30-divisable-binary => 030-divisable-binary}/solution.hide.py (100%) rename exercises/{31-sum-eigth-digit => 031-sum-eigth-digit}/README.md (100%) rename exercises/{31-sum-eigth-digit => 031-sum-eigth-digit}/app.py (100%) rename exercises/{31-sum-eigth-digit => 031-sum-eigth-digit}/solution.hide.py (100%) rename exercises/{32-numbers-of-letters-and-digits => 032-numbers-of-letters-and-digits}/README.md (100%) rename exercises/{32-numbers-of-letters-and-digits => 032-numbers-of-letters-and-digits}/app.py (100%) rename exercises/{32-numbers-of-letters-and-digits => 032-numbers-of-letters-and-digits}/solution.hide.py (100%) rename exercises/{33-number-of-uppercase => 033-number-of-uppercase}/README.md (100%) rename exercises/{33-number-of-uppercase => 033-number-of-uppercase}/app.py (100%) rename exercises/{33-number-of-uppercase => 033-number-of-uppercase}/solution.hide.py (100%) rename exercises/{34-a_aa_aaa_aaaa => 034-a_aa_aaa_aaaa}/README.md (100%) rename exercises/{34-a_aa_aaa_aaaa => 034-a_aa_aaa_aaaa}/app.py (100%) rename exercises/{34-a_aa_aaa_aaaa => 034-a_aa_aaa_aaaa}/solution.hide.py (100%) rename exercises/{35-square-each-odd-number => 035-square-each-odd-number}/README.md (100%) rename exercises/{35-square-each-odd-number => 035-square-each-odd-number}/app.py (100%) rename exercises/{35-square-each-odd-number => 035-square-each-odd-number}/solution.hide.py (100%) rename exercises/{36-net-amount => 036-net-amount}/README.md (100%) rename exercises/{36-net-amount => 036-net-amount}/app.py (100%) rename exercises/{36-net-amount => 036-net-amount}/solution.hide.py (100%) rename exercises/{37-validity-of-password => 037-validity-of-password}/README.md (100%) rename exercises/{37-validity-of-password => 037-validity-of-password}/app.py (100%) rename exercises/{37-validity-of-password => 037-validity-of-password}/solution.hide.py (100%) rename exercises/{38-sort-tuples-ascending => 038-sort-tuples-ascending}/README.md (100%) rename exercises/{38-sort-tuples-ascending => 038-sort-tuples-ascending}/app.py (100%) rename exercises/{38-sort-tuples-ascending => 038-sort-tuples-ascending}/solution.hide.py (100%) rename exercises/{39-class-that-iterates => 039-class-that-iterates}/README.md (100%) rename exercises/{39-class-that-iterates => 039-class-that-iterates}/app.py (100%) rename exercises/{39-class-that-iterates => 039-class-that-iterates}/solution.hide.py (100%) rename exercises/{40-compute-robot-distance => 040-compute-robot-distance}/README.md (100%) rename exercises/{40-compute-robot-distance => 040-compute-robot-distance}/app.py (100%) rename exercises/{40-compute-robot-distance => 040-compute-robot-distance}/solution.hide.py (100%) rename exercises/{41-frequency-of-words => 041-frequency-of-words}/README.md (100%) rename exercises/{41-frequency-of-words => 041-frequency-of-words}/app.py (100%) rename exercises/{41-frequency-of-words => 041-frequency-of-words}/solution.hide.py (100%) create mode 100644 exercises/042-Clock face/README.es.md create mode 100644 exercises/042-Clock face/README.md create mode 100644 exercises/042-Clock face/app.py create mode 100644 exercises/043-School desks/README.es.md create mode 100644 exercises/043-School desks/README.md create mode 100644 exercises/043-School desks/app.py create mode 100644 exercises/044-Odd or even/README.md create mode 100644 exercises/044-Odd or even/app.py create mode 100644 exercises/045-Minimum of two numbers/README.md create mode 100644 exercises/045-Minimum of two numbers/app.py create mode 100644 exercises/046-Sign function/README.md create mode 100644 exercises/046-Sign function/app.py create mode 100644 exercises/047-Three-digit number/README.md create mode 100644 exercises/047-Three-digit number/app.py create mode 100644 exercises/048-Single positive/README.md create mode 100644 exercises/048-Single positive/app.py create mode 100644 exercises/049-Ascending digits/README.md create mode 100644 exercises/049-Ascending digits/app.py create mode 100644 exercises/050-Four-digit palindrome/README.md create mode 100644 exercises/050-Four-digit palindrome/app.py create mode 100644 exercises/051-Minimum of three numbers/README.md create mode 100644 exercises/051-Minimum of three numbers/app.py create mode 100644 exercises/052-Days in month/README.md create mode 100644 exercises/052-Days in month/app.py create mode 100644 exercises/053-Equal numbers/README.md create mode 100644 exercises/053-Equal numbers/app.py create mode 100644 exercises/054-Order of outlier/README.md create mode 100644 exercises/054-Order of outlier/app.py create mode 100644 exercises/055-Rook move/README.md create mode 100644 exercises/055-Rook move/Rock Move exercise.jpg create mode 100644 exercises/055-Rook move/app.py create mode 100644 exercises/056-Chessboard - black square/Chessboard - black square.jpg create mode 100644 exercises/056-Chessboard - black square/README.md create mode 100644 exercises/056-Chessboard - black square/app.py create mode 100644 exercises/057-Chessboard - same color/Chessboard - same color.jpg create mode 100644 exercises/057-Chessboard - same color/README.md create mode 100644 exercises/057-Chessboard - same color/app.py create mode 100644 exercises/058-King move/README.md create mode 100644 exercises/058-King move/app.py create mode 100644 exercises/059-Bishop move/Bishop move.jpg create mode 100644 exercises/059-Bishop move/README.md create mode 100644 exercises/059-Bishop move/app.py create mode 100644 exercises/060-Queen move/Queen move.jpg create mode 100644 exercises/060-Queen move/README.md create mode 100644 exercises/060-Queen move/app.py create mode 100644 exercises/061-Knight move/README.md create mode 100644 exercises/061-Knight move/app.py create mode 100644 exercises/061-Knight move/knight move.jpg create mode 100644 exercises/062-Leap year/README.md create mode 100644 exercises/062-Leap year/app.py create mode 100644 exercises/063-Next day/README.md create mode 100644 exercises/063-Next day/app.py create mode 100644 exercises/064-Linear equation/README.md create mode 100644 exercises/064-Linear equation/app.py create mode 100644 exercises/065-Minimum of five numbers/README.md create mode 100644 exercises/066-Vertices of rectangle/README.md create mode 100644 exercises/066-Vertices of rectangle/app.py create mode 100644 exercises/067-Sort three numbers/README.md create mode 100644 exercises/067-Sort three numbers/app.py create mode 100644 exercises/068-Series - 1/README.md create mode 100644 exercises/068-Series - 1/app.py create mode 100644 exercises/069-Series - 2/README.md create mode 100644 exercises/069-Series - 2/app.py create mode 100644 exercises/070-Sum of ten numbers/README.md create mode 100644 exercises/070-Sum of ten numbers/app.py create mode 100644 exercises/071-Sum of N numbers/README.md create mode 100644 exercises/071-Sum of N numbers/app.py create mode 100644 exercises/072-Sum of cubes/README.md create mode 100644 exercises/072-Sum of cubes/app.py create mode 100644 exercises/073-Number of zeros/README.md create mode 100644 exercises/073-Number of zeros/app.py create mode 100644 exercises/074-Sum of factorials/README.md create mode 100644 exercises/074-Sum of factorials/app.py create mode 100644 exercises/075-Lost card/README.md create mode 100644 exercises/075-Lost card/app.py create mode 100644 exercises/076-Ladder/README.md create mode 100644 exercises/076-Ladder/app.py create mode 100644 exercises/077-Slices/README.md create mode 100644 exercises/077-Slices/app.py create mode 100644 exercises/078-Number of words/README.md create mode 100644 exercises/078-Number of words/app.py create mode 100644 exercises/079-Two halves/README.md create mode 100644 exercises/079-Two halves/app.py create mode 100644 exercises/080-Swap two words/README.md create mode 100644 exercises/080-Swap two words/app.py create mode 100644 exercises/081-First and last occurrence/README.md create mode 100644 exercises/081-First and last occurrence/app.py create mode 100644 exercises/082-Second occurrence/README.md create mode 100644 exercises/082-Second occurrence/app.py create mode 100644 exercises/083-Remove fragment/README.md create mode 100644 exercises/083-Remove fragment/app.py create mode 100644 exercises/084-Reverse fragment/README.md create mode 100644 exercises/084-Reverse fragment/app.py create mode 100644 exercises/085-Replace/README.md create mode 100644 exercises/085-Replace/app.py create mode 100644 exercises/086-Delete character/README.md create mode 100644 exercises/086-Delete character/app.py create mode 100644 exercises/087-Replace in fragment/README.md create mode 100644 exercises/087-Replace in fragment/app.py create mode 100644 exercises/088-Delete every third character/README.md create mode 100644 exercises/088-Delete every third character/app.py create mode 100644 exercises/089-List of squares/README.md create mode 100644 exercises/089-List of squares/app.py create mode 100644 exercises/090-Least divisor/README.md create mode 100644 exercises/090-Least divisor/app.py create mode 100644 exercises/091-Power of two/README.md create mode 100644 exercises/091-Power of two/app.py create mode 100644 exercises/092-Jogging/README.md create mode 100644 exercises/092-Jogging/app.py create mode 100644 exercises/093-Length of sequence/README.md create mode 100644 exercises/093-Length of sequence/app.py create mode 100644 exercises/094-Sum of sequence/README.md create mode 100644 exercises/094-Sum of sequence/app.py create mode 100644 exercises/095-Average of sequence/README.md create mode 100644 exercises/095-Average of sequence/app.py create mode 100644 exercises/096-Maximum of sequence/README.md create mode 100644 exercises/096-Maximum of sequence/app.py create mode 100644 exercises/097-Index of maximum/README.md create mode 100644 exercises/097-Index of maximum/app.py create mode 100644 exercises/098-Number of even elements/README.md create mode 100644 exercises/098-Number of even elements/app.py create mode 100644 exercises/099-Greater than previous/README.md create mode 100644 exercises/099-Greater than previous/app.py create mode 100644 exercises/100-Second maximum/README.md create mode 100644 exercises/100-Second maximum/app.py create mode 100644 exercises/101-Number of maxima/README.md create mode 100644 exercises/101-Number of maxima/app.py create mode 100644 exercises/102-Widest fragment/README.md create mode 100644 exercises/102-Widest fragment/app.py create mode 100644 exercises/103-Fibonacci numbers/README.md create mode 100644 exercises/103-Fibonacci numbers/app.py create mode 100644 exercises/104-Fibonacci index/README.md create mode 100644 exercises/104-Fibonacci index/app.py create mode 100644 exercises/105-Even indices/README.md create mode 100644 exercises/105-Even indices/app.py create mode 100644 exercises/106-Even elements/README.md create mode 100644 exercises/106-Even elements/app.py create mode 100644 exercises/107-Greater than left neighbor/README.md create mode 100644 exercises/107-Greater than left neighbor/app.py create mode 100644 exercises/108-Same sign neighbors/README.md create mode 100644 exercises/108-Same sign neighbors/app.py create mode 100644 exercises/109-Greater than neighbors/README.md create mode 100644 exercises/109-Greater than neighbors/app.py create mode 100644 exercises/110-Number of distinct elements/README.md create mode 100644 exercises/110-Number of distinct elements/app.py create mode 100644 exercises/111-Swap neighbors/README.md create mode 100644 exercises/111-Swap neighbors/app.py create mode 100644 exercises/112-Maximum/README.md create mode 100644 exercises/112-Maximum/app.py create mode 100644 exercises/113-Swap min and max/README.md create mode 100644 exercises/113-Swap min and max/app.py create mode 100644 exercises/114-Pairs of equal numbers/README.md create mode 100644 exercises/114-Pairs of equal numbers/app.py create mode 100644 exercises/115-Unique elements/README.md create mode 100644 exercises/115-Unique elements/app.py create mode 100644 exercises/116-Eight queens/Eight queen.jpg create mode 100644 exercises/116-Eight queens/README.md create mode 100644 exercises/116-Eight queens/app.py create mode 100644 exercises/117-Bowling/README.md create mode 100644 exercises/117-Bowling/app.py create mode 100644 exercises/118-Scale/README.md create mode 100644 exercises/118-Scale/app.py create mode 100644 exercises/119-lists_Maximum/README.md create mode 100644 exercises/119-lists_Maximum/app.py create mode 100644 exercises/120-Diagonals/README.md create mode 100644 exercises/120-Diagonals/app.py create mode 100644 exercises/121-Triangles/README.md create mode 100644 exercises/121-Triangles/app.py create mode 100644 exercises/122-Swap columns/README.md create mode 100644 exercises/122-Swap columns/app.py create mode 100644 exercises/123-Snowflake/README.md create mode 100644 exercises/123-Snowflake/app.py create mode 100644 exercises/124-Chessboard/README.md create mode 100644 exercises/124-Chessboard/app.py create mode 100644 exercises/125-Number of distinct/README.md create mode 100644 exercises/125-Number of distinct/app.py create mode 100644 exercises/126-Number of common/README.md create mode 100644 exercises/126-Number of common/app.py create mode 100644 exercises/127-Intersection/README.md create mode 100644 exercises/127-Intersection/app.py create mode 100644 exercises/128-Seen before/README.md create mode 100644 exercises/128-Seen before/app.py create mode 100644 exercises/129-Guess the number/README.md create mode 100644 exercises/129-Guess the number/app.py create mode 100644 exercises/130-Number of occurrences/README.md create mode 100644 exercises/130-Number of occurrences/app.py create mode 100644 exercises/131-Synonyms/README.md create mode 100644 exercises/131-Synonyms/app.py create mode 100644 exercises/132-Elections/README.md create mode 100644 exercises/132-Elections/app.py create mode 100644 exercises/133-Most frequent word/README.md create mode 100644 exercises/133-Most frequent word/app.py create mode 100644 exercises/134-Access rights/README.md create mode 100644 exercises/134-Access rights/app.py create mode 100644 exercises/135-Countries and cities/README.md create mode 100644 exercises/135-Countries and cities/app.py create mode 100644 exercises/136-Frequency analysis/README.md create mode 100644 exercises/136-Frequency analysis/app.py create mode 100644 exercises/137-English-Latin dictionary/README.md create mode 100644 exercises/137-English-Latin dictionary/app.py diff --git a/exercises/02-hello-world/app.py b/.learn/resets/02-hello-world/app.py similarity index 100% rename from exercises/02-hello-world/app.py rename to .learn/resets/02-hello-world/app.py diff --git a/bc.json b/bc.json index 31b7c454..141687e6 100644 --- a/bc.json +++ b/bc.json @@ -1,5 +1,28 @@ { + "port": 3000, + "address": "https://f12ccd6b-9b79-49f2-88ee-bfbeff35b985.ws-us03.gitpod.io", + "editor": "gitpod", + "configPath": { + "config": "bc.json", + "base": ".learn", + "exercises": "./exercises", + "output": ".learn/dist" + }, + "outputPath": "./.learn/dist", + "publicPath": "/preview", + "grading": "isolated", + "ignoreRegex": null, + "webpack_template": null, + "disable_grading": false, + "onCompilerSuccess": null, "language": "python3", + "compiler": "python3", + "tester": "pytest", + "actions": [ + "run", + "test", + "reset" + ], "title": "Master Python by practice (interactive)", "repository": "https://github.com/4GeeksAcademy/master-python-programming-exercises", "preview": "https://github.com/4GeeksAcademy/master-python-programming-exercises/blob/master/preview.gif?raw=true", @@ -7,5 +30,451 @@ "duration": 10, "difficulty": "easy", "video-solutions": false, - "graded": true -} + "graded": true, + "session": 8309827614104636000, + "exercises": [ + { + "slug": "001-welcome", + "title": "001-welcome", + "done": false, + "path": "exercises/001-welcome", + "translations": [ + "es", + "us" + ], + "graded": false + }, + { + "slug": "002-hello-world", + "title": "002-hello-world", + "done": false, + "path": "exercises/002-hello-world", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "003-sum_of_three_numbers", + "title": "003-sum_of_three_numbers", + "done": false, + "path": "exercises/003-sum_of_three_numbers", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "004-area_of_right_triangle", + "title": "004-area_of_right_triangle", + "done": false, + "path": "exercises/004-area_of_right_triangle", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "005-hello_harry", + "title": "005-hello_harry", + "done": false, + "path": "exercises/005-hello_harry", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "006-previous_and_next", + "title": "006-previous_and_next", + "done": false, + "path": "exercises/006-previous_and_next", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "007-Apple_sharing", + "title": "007-Apple_sharing", + "done": false, + "path": "exercises/007-Apple_sharing", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "007.1-square-value", + "title": "007.1-square-value", + "done": false, + "path": "exercises/007.1-square-value", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "008-hours_and_minutes", + "title": "008-hours_and_minutes", + "done": false, + "path": "exercises/008-hours_and_minutes", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "009-Two_timestamps", + "title": "009-Two_timestamps", + "done": false, + "path": "exercises/009-Two_timestamps", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "010-Two_digits", + "title": "010-Two_digits", + "done": false, + "path": "exercises/010-Two_digits", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "011-Swap_digits", + "title": "011-Swap_digits", + "done": false, + "path": "exercises/011-Swap_digits", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "012-Last_two_digits", + "title": "012-Last_two_digits", + "done": false, + "path": "exercises/012-Last_two_digits", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "013-ten_digits", + "title": "013-ten_digits", + "done": false, + "path": "exercises/013-ten_digits", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "014-sum_of_digits", + "title": "014-sum_of_digits", + "done": false, + "path": "exercises/014-sum_of_digits", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "015-Digit_after_decimal_point", + "title": "015-Digit_after_decimal_point", + "done": false, + "path": "exercises/015-Digit_after_decimal_point", + "translations": [ + "us", + "us" + ], + "graded": true + }, + { + "slug": "016-Car_route", + "title": "016-Car_route", + "done": false, + "path": "exercises/016-Car_route", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "017-Century", + "title": "017-Century", + "done": false, + "path": "exercises/017-Century", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "018-Total_cost", + "title": "018-Total_cost", + "done": false, + "path": "exercises/018-Total_cost", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "019-Day_of_week", + "title": "019-Day_of_week", + "done": false, + "path": "exercises/019-Day_of_week", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "020-Digital_clock", + "title": "020-Digital_clock", + "done": false, + "path": "exercises/020-Digital_clock", + "translations": [ + "es", + "us" + ], + "graded": true + }, + { + "slug": "021-factorial", + "title": "021-factorial", + "done": false, + "path": "exercises/021-factorial", + "translations": [ + "es", + "us" + ], + "graded": false + }, + { + "slug": "022-Integral", + "title": "022-Integral", + "done": false, + "path": "exercises/022-Integral", + "translations": [ + "es", + "us" + ], + "graded": false + }, + { + "slug": "023-list-and-tuple", + "title": "023-list-and-tuple", + "done": false, + "path": "exercises/023-list-and-tuple", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "24-class-with-two-methods", + "title": "24-class-with-two-methods", + "done": false, + "path": "exercises/24-class-with-two-methods", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "25-print-formula", + "title": "25-print-formula", + "done": false, + "path": "exercises/25-print-formula", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "26-two-dimensional-array", + "title": "26-two-dimensional-array", + "done": false, + "path": "exercises/26-two-dimensional-array", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "27-sequence-of-words", + "title": "27-sequence-of-words", + "done": false, + "path": "exercises/27-sequence-of-words", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "28-sequence-of-lines", + "title": "28-sequence-of-lines", + "done": false, + "path": "exercises/28-sequence-of-lines", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "29-remove-duplicate-words", + "title": "29-remove-duplicate-words", + "done": false, + "path": "exercises/29-remove-duplicate-words", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "30-divisable-binary", + "title": "30-divisable-binary", + "done": false, + "path": "exercises/30-divisable-binary", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "31-sum-eigth-digit", + "title": "31-sum-eigth-digit", + "done": false, + "path": "exercises/31-sum-eigth-digit", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "32-numbers-of-letters-and-digits", + "title": "32-numbers-of-letters-and-digits", + "done": false, + "path": "exercises/32-numbers-of-letters-and-digits", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "33-number-of-uppercase", + "title": "33-number-of-uppercase", + "done": false, + "path": "exercises/33-number-of-uppercase", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "34-a_aa_aaa_aaaa", + "title": "34-a_aa_aaa_aaaa", + "done": false, + "path": "exercises/34-a_aa_aaa_aaaa", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "35-square-each-odd-number", + "title": "35-square-each-odd-number", + "done": false, + "path": "exercises/35-square-each-odd-number", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "36-net-amount", + "title": "36-net-amount", + "done": false, + "path": "exercises/36-net-amount", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "37-validity-of-password", + "title": "37-validity-of-password", + "done": false, + "path": "exercises/37-validity-of-password", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "38-sort-tuples-ascending", + "title": "38-sort-tuples-ascending", + "done": false, + "path": "exercises/38-sort-tuples-ascending", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "39-class-that-iterates", + "title": "39-class-that-iterates", + "done": false, + "path": "exercises/39-class-that-iterates", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "40-compute-robot-distance", + "title": "40-compute-robot-distance", + "done": false, + "path": "exercises/40-compute-robot-distance", + "translations": [ + "us" + ], + "graded": false + }, + { + "slug": "41-frequency-of-words", + "title": "41-frequency-of-words", + "done": false, + "path": "exercises/41-frequency-of-words", + "translations": [ + "us" + ], + "graded": false + } + ] +} \ No newline at end of file diff --git a/exercises/01-welcome/README.es.md b/exercises/001-welcome/README.es.md similarity index 100% rename from exercises/01-welcome/README.es.md rename to exercises/001-welcome/README.es.md diff --git a/exercises/01-welcome/README.md b/exercises/001-welcome/README.md similarity index 100% rename from exercises/01-welcome/README.md rename to exercises/001-welcome/README.md diff --git a/exercises/02-hello-world/README.es.md b/exercises/002-hello-world/README.es.md similarity index 100% rename from exercises/02-hello-world/README.es.md rename to exercises/002-hello-world/README.es.md diff --git a/exercises/02-hello-world/README.md b/exercises/002-hello-world/README.md similarity index 100% rename from exercises/02-hello-world/README.md rename to exercises/002-hello-world/README.md diff --git a/exercises/002-hello-world/app.py b/exercises/002-hello-world/app.py new file mode 100644 index 00000000..801de24b --- /dev/null +++ b/exercises/002-hello-world/app.py @@ -0,0 +1 @@ +# your code here \ No newline at end of file diff --git a/exercises/02-hello-world/test.py b/exercises/002-hello-world/test.py similarity index 100% rename from exercises/02-hello-world/test.py rename to exercises/002-hello-world/test.py diff --git a/exercises/03-sum_of_three_numbers/README.es.md b/exercises/003-sum_of_three_numbers/README.es.md similarity index 100% rename from exercises/03-sum_of_three_numbers/README.es.md rename to exercises/003-sum_of_three_numbers/README.es.md diff --git a/exercises/03-sum_of_three_numbers/README.md b/exercises/003-sum_of_three_numbers/README.md similarity index 100% rename from exercises/03-sum_of_three_numbers/README.md rename to exercises/003-sum_of_three_numbers/README.md diff --git a/exercises/03-sum_of_three_numbers/app.py b/exercises/003-sum_of_three_numbers/app.py similarity index 100% rename from exercises/03-sum_of_three_numbers/app.py rename to exercises/003-sum_of_three_numbers/app.py diff --git a/exercises/03-sum_of_three_numbers/test.py b/exercises/003-sum_of_three_numbers/test.py similarity index 100% rename from exercises/03-sum_of_three_numbers/test.py rename to exercises/003-sum_of_three_numbers/test.py diff --git a/exercises/04-area_of_right_triangle/README.es.md b/exercises/004-area_of_right_triangle/README.es.md similarity index 100% rename from exercises/04-area_of_right_triangle/README.es.md rename to exercises/004-area_of_right_triangle/README.es.md diff --git a/exercises/04-area_of_right_triangle/README.md b/exercises/004-area_of_right_triangle/README.md similarity index 100% rename from exercises/04-area_of_right_triangle/README.md rename to exercises/004-area_of_right_triangle/README.md diff --git a/exercises/04-area_of_right_triangle/app.py b/exercises/004-area_of_right_triangle/app.py similarity index 100% rename from exercises/04-area_of_right_triangle/app.py rename to exercises/004-area_of_right_triangle/app.py diff --git a/exercises/04-area_of_right_triangle/test.py b/exercises/004-area_of_right_triangle/test.py similarity index 100% rename from exercises/04-area_of_right_triangle/test.py rename to exercises/004-area_of_right_triangle/test.py diff --git a/exercises/05-hello_harry/README.es.md b/exercises/005-hello_harry/README.es.md similarity index 100% rename from exercises/05-hello_harry/README.es.md rename to exercises/005-hello_harry/README.es.md diff --git a/exercises/05-hello_harry/README.md b/exercises/005-hello_harry/README.md similarity index 100% rename from exercises/05-hello_harry/README.md rename to exercises/005-hello_harry/README.md diff --git a/exercises/05-hello_harry/app.py b/exercises/005-hello_harry/app.py similarity index 100% rename from exercises/05-hello_harry/app.py rename to exercises/005-hello_harry/app.py diff --git a/exercises/05-hello_harry/test.py b/exercises/005-hello_harry/test.py similarity index 100% rename from exercises/05-hello_harry/test.py rename to exercises/005-hello_harry/test.py diff --git a/exercises/06-previous_and_next/README.es.md b/exercises/006-previous_and_next/README.es.md similarity index 100% rename from exercises/06-previous_and_next/README.es.md rename to exercises/006-previous_and_next/README.es.md diff --git a/exercises/06-previous_and_next/README.md b/exercises/006-previous_and_next/README.md similarity index 100% rename from exercises/06-previous_and_next/README.md rename to exercises/006-previous_and_next/README.md diff --git a/exercises/06-previous_and_next/app.py b/exercises/006-previous_and_next/app.py similarity index 100% rename from exercises/06-previous_and_next/app.py rename to exercises/006-previous_and_next/app.py diff --git a/exercises/06-previous_and_next/test.py b/exercises/006-previous_and_next/test.py similarity index 100% rename from exercises/06-previous_and_next/test.py rename to exercises/006-previous_and_next/test.py diff --git a/exercises/07-Apple_sharing/README.es.md b/exercises/007-Apple_sharing/README.es.md similarity index 100% rename from exercises/07-Apple_sharing/README.es.md rename to exercises/007-Apple_sharing/README.es.md diff --git a/exercises/07-Apple_sharing/README.md b/exercises/007-Apple_sharing/README.md similarity index 100% rename from exercises/07-Apple_sharing/README.md rename to exercises/007-Apple_sharing/README.md diff --git a/exercises/07-Apple_sharing/app.py b/exercises/007-Apple_sharing/app.py similarity index 100% rename from exercises/07-Apple_sharing/app.py rename to exercises/007-Apple_sharing/app.py diff --git a/exercises/07-Apple_sharing/test.py b/exercises/007-Apple_sharing/test.py similarity index 100% rename from exercises/07-Apple_sharing/test.py rename to exercises/007-Apple_sharing/test.py diff --git a/exercises/07.1-square-value/README.es.md b/exercises/007.1-square-value/README.es.md similarity index 100% rename from exercises/07.1-square-value/README.es.md rename to exercises/007.1-square-value/README.es.md diff --git a/exercises/07.1-square-value/README.md b/exercises/007.1-square-value/README.md similarity index 100% rename from exercises/07.1-square-value/README.md rename to exercises/007.1-square-value/README.md diff --git a/exercises/07.1-square-value/app.py b/exercises/007.1-square-value/app.py similarity index 100% rename from exercises/07.1-square-value/app.py rename to exercises/007.1-square-value/app.py diff --git a/exercises/07.1-square-value/solution.py b/exercises/007.1-square-value/solution.py similarity index 100% rename from exercises/07.1-square-value/solution.py rename to exercises/007.1-square-value/solution.py diff --git a/exercises/07.1-square-value/test.py b/exercises/007.1-square-value/test.py similarity index 100% rename from exercises/07.1-square-value/test.py rename to exercises/007.1-square-value/test.py diff --git a/exercises/08-hours_and_minutes/README.es.md b/exercises/008-hours_and_minutes/README.es.md similarity index 100% rename from exercises/08-hours_and_minutes/README.es.md rename to exercises/008-hours_and_minutes/README.es.md diff --git a/exercises/08-hours_and_minutes/README.md b/exercises/008-hours_and_minutes/README.md similarity index 100% rename from exercises/08-hours_and_minutes/README.md rename to exercises/008-hours_and_minutes/README.md diff --git a/exercises/08-hours_and_minutes/app.py b/exercises/008-hours_and_minutes/app.py similarity index 100% rename from exercises/08-hours_and_minutes/app.py rename to exercises/008-hours_and_minutes/app.py diff --git a/exercises/08-hours_and_minutes/test.py b/exercises/008-hours_and_minutes/test.py similarity index 100% rename from exercises/08-hours_and_minutes/test.py rename to exercises/008-hours_and_minutes/test.py diff --git a/exercises/09-Two_timestamps/README.es.md b/exercises/009-Two_timestamps/README.es.md similarity index 100% rename from exercises/09-Two_timestamps/README.es.md rename to exercises/009-Two_timestamps/README.es.md diff --git a/exercises/09-Two_timestamps/README.md b/exercises/009-Two_timestamps/README.md similarity index 100% rename from exercises/09-Two_timestamps/README.md rename to exercises/009-Two_timestamps/README.md diff --git a/exercises/09-Two_timestamps/app.py b/exercises/009-Two_timestamps/app.py similarity index 100% rename from exercises/09-Two_timestamps/app.py rename to exercises/009-Two_timestamps/app.py diff --git a/exercises/09-Two_timestamps/test.py b/exercises/009-Two_timestamps/test.py similarity index 100% rename from exercises/09-Two_timestamps/test.py rename to exercises/009-Two_timestamps/test.py diff --git a/exercises/10-Two_digits/README.es.md b/exercises/010-Two_digits/README.es.md similarity index 100% rename from exercises/10-Two_digits/README.es.md rename to exercises/010-Two_digits/README.es.md diff --git a/exercises/10-Two_digits/README.md b/exercises/010-Two_digits/README.md similarity index 100% rename from exercises/10-Two_digits/README.md rename to exercises/010-Two_digits/README.md diff --git a/exercises/10-Two_digits/app.py b/exercises/010-Two_digits/app.py similarity index 100% rename from exercises/10-Two_digits/app.py rename to exercises/010-Two_digits/app.py diff --git a/exercises/10-Two_digits/test.py b/exercises/010-Two_digits/test.py similarity index 100% rename from exercises/10-Two_digits/test.py rename to exercises/010-Two_digits/test.py diff --git a/exercises/11-Swap_digits/README.es.md b/exercises/011-Swap_digits/README.es.md similarity index 100% rename from exercises/11-Swap_digits/README.es.md rename to exercises/011-Swap_digits/README.es.md diff --git a/exercises/11-Swap_digits/README.md b/exercises/011-Swap_digits/README.md similarity index 100% rename from exercises/11-Swap_digits/README.md rename to exercises/011-Swap_digits/README.md diff --git a/exercises/11-Swap_digits/app.py b/exercises/011-Swap_digits/app.py similarity index 100% rename from exercises/11-Swap_digits/app.py rename to exercises/011-Swap_digits/app.py diff --git a/exercises/11-Swap_digits/test.py b/exercises/011-Swap_digits/test.py similarity index 100% rename from exercises/11-Swap_digits/test.py rename to exercises/011-Swap_digits/test.py diff --git a/exercises/12-Last_two_digits/README.es.md b/exercises/012-Last_two_digits/README.es.md similarity index 100% rename from exercises/12-Last_two_digits/README.es.md rename to exercises/012-Last_two_digits/README.es.md diff --git a/exercises/12-Last_two_digits/README.md b/exercises/012-Last_two_digits/README.md similarity index 100% rename from exercises/12-Last_two_digits/README.md rename to exercises/012-Last_two_digits/README.md diff --git a/exercises/12-Last_two_digits/app.py b/exercises/012-Last_two_digits/app.py similarity index 100% rename from exercises/12-Last_two_digits/app.py rename to exercises/012-Last_two_digits/app.py diff --git a/exercises/12-Last_two_digits/test.py b/exercises/012-Last_two_digits/test.py similarity index 100% rename from exercises/12-Last_two_digits/test.py rename to exercises/012-Last_two_digits/test.py diff --git a/exercises/13-Tens_digit/README.es.md b/exercises/013-ten_digits/README.es.md similarity index 100% rename from exercises/13-Tens_digit/README.es.md rename to exercises/013-ten_digits/README.es.md diff --git a/exercises/13-Tens_digit/README.md b/exercises/013-ten_digits/README.md similarity index 100% rename from exercises/13-Tens_digit/README.md rename to exercises/013-ten_digits/README.md diff --git a/exercises/13-Tens_digit/app.py b/exercises/013-ten_digits/app.py similarity index 100% rename from exercises/13-Tens_digit/app.py rename to exercises/013-ten_digits/app.py diff --git a/exercises/13-Tens_digit/test.py b/exercises/013-ten_digits/test.py similarity index 100% rename from exercises/13-Tens_digit/test.py rename to exercises/013-ten_digits/test.py diff --git a/exercises/14-sum_of_digits/README.es.md b/exercises/014-sum_of_digits/README.es.md similarity index 100% rename from exercises/14-sum_of_digits/README.es.md rename to exercises/014-sum_of_digits/README.es.md diff --git a/exercises/14-sum_of_digits/README.md b/exercises/014-sum_of_digits/README.md similarity index 100% rename from exercises/14-sum_of_digits/README.md rename to exercises/014-sum_of_digits/README.md diff --git a/exercises/14-sum_of_digits/app.py b/exercises/014-sum_of_digits/app.py similarity index 100% rename from exercises/14-sum_of_digits/app.py rename to exercises/014-sum_of_digits/app.py diff --git a/exercises/14-sum_of_digits/test.py b/exercises/014-sum_of_digits/test.py similarity index 100% rename from exercises/14-sum_of_digits/test.py rename to exercises/014-sum_of_digits/test.py diff --git a/exercises/15-Digit_after_decimal_point/README,es.md b/exercises/015-Digit_after_decimal_point/README,es.md similarity index 100% rename from exercises/15-Digit_after_decimal_point/README,es.md rename to exercises/015-Digit_after_decimal_point/README,es.md diff --git a/exercises/15-Digit_after_decimal_point/README.md b/exercises/015-Digit_after_decimal_point/README.md similarity index 100% rename from exercises/15-Digit_after_decimal_point/README.md rename to exercises/015-Digit_after_decimal_point/README.md diff --git a/exercises/15-Digit_after_decimal_point/app.py b/exercises/015-Digit_after_decimal_point/app.py similarity index 100% rename from exercises/15-Digit_after_decimal_point/app.py rename to exercises/015-Digit_after_decimal_point/app.py diff --git a/exercises/15-Digit_after_decimal_point/test.py b/exercises/015-Digit_after_decimal_point/test.py similarity index 100% rename from exercises/15-Digit_after_decimal_point/test.py rename to exercises/015-Digit_after_decimal_point/test.py diff --git a/exercises/16-Car_route/README.es.md b/exercises/016-Car_route/README.es.md similarity index 100% rename from exercises/16-Car_route/README.es.md rename to exercises/016-Car_route/README.es.md diff --git a/exercises/16-Car_route/README.md b/exercises/016-Car_route/README.md similarity index 100% rename from exercises/16-Car_route/README.md rename to exercises/016-Car_route/README.md diff --git a/exercises/16-Car_route/app.py b/exercises/016-Car_route/app.py similarity index 100% rename from exercises/16-Car_route/app.py rename to exercises/016-Car_route/app.py diff --git a/exercises/16-Car_route/test.py b/exercises/016-Car_route/test.py similarity index 100% rename from exercises/16-Car_route/test.py rename to exercises/016-Car_route/test.py diff --git a/exercises/17-Century/README.es.md b/exercises/017-Century/README.es.md similarity index 100% rename from exercises/17-Century/README.es.md rename to exercises/017-Century/README.es.md diff --git a/exercises/17-Century/README.md b/exercises/017-Century/README.md similarity index 100% rename from exercises/17-Century/README.md rename to exercises/017-Century/README.md diff --git a/exercises/17-Century/app.py b/exercises/017-Century/app.py similarity index 100% rename from exercises/17-Century/app.py rename to exercises/017-Century/app.py diff --git a/exercises/17-Century/test.py b/exercises/017-Century/test.py similarity index 100% rename from exercises/17-Century/test.py rename to exercises/017-Century/test.py diff --git a/exercises/18-Total_cost/README.es.md b/exercises/018-Total_cost/README.es.md similarity index 100% rename from exercises/18-Total_cost/README.es.md rename to exercises/018-Total_cost/README.es.md diff --git a/exercises/18-Total_cost/README.md b/exercises/018-Total_cost/README.md similarity index 100% rename from exercises/18-Total_cost/README.md rename to exercises/018-Total_cost/README.md diff --git a/exercises/18-Total_cost/app.py b/exercises/018-Total_cost/app.py similarity index 100% rename from exercises/18-Total_cost/app.py rename to exercises/018-Total_cost/app.py diff --git a/exercises/18-Total_cost/test.py b/exercises/018-Total_cost/test.py similarity index 100% rename from exercises/18-Total_cost/test.py rename to exercises/018-Total_cost/test.py diff --git a/exercises/19-Day_of_week/README.es.md b/exercises/019-Day_of_week/README.es.md similarity index 100% rename from exercises/19-Day_of_week/README.es.md rename to exercises/019-Day_of_week/README.es.md diff --git a/exercises/19-Day_of_week/README.md b/exercises/019-Day_of_week/README.md similarity index 100% rename from exercises/19-Day_of_week/README.md rename to exercises/019-Day_of_week/README.md diff --git a/exercises/19-Day_of_week/app.py b/exercises/019-Day_of_week/app.py similarity index 100% rename from exercises/19-Day_of_week/app.py rename to exercises/019-Day_of_week/app.py diff --git a/exercises/19-Day_of_week/test.py b/exercises/019-Day_of_week/test.py similarity index 100% rename from exercises/19-Day_of_week/test.py rename to exercises/019-Day_of_week/test.py diff --git a/exercises/20-Digital_clock/README.es.md b/exercises/020-Digital_clock/README.es.md similarity index 100% rename from exercises/20-Digital_clock/README.es.md rename to exercises/020-Digital_clock/README.es.md diff --git a/exercises/20-Digital_clock/README.md b/exercises/020-Digital_clock/README.md similarity index 100% rename from exercises/20-Digital_clock/README.md rename to exercises/020-Digital_clock/README.md diff --git a/exercises/20-Digital_clock/app.py b/exercises/020-Digital_clock/app.py similarity index 100% rename from exercises/20-Digital_clock/app.py rename to exercises/020-Digital_clock/app.py diff --git a/exercises/20-Digital_clock/test.py b/exercises/020-Digital_clock/test.py similarity index 100% rename from exercises/20-Digital_clock/test.py rename to exercises/020-Digital_clock/test.py diff --git a/exercises/021-factorial/README.es.md b/exercises/021-factorial/README.es.md new file mode 100644 index 00000000..75ea02f3 --- /dev/null +++ b/exercises/021-factorial/README.es.md @@ -0,0 +1,21 @@ +# `21` Factorial + +## 📝 Instrucciones + +Escribe un programa que pueda calcular el factorial de un número dado. +Los resultados deben imprimirse en una secuencia separada por comas en una sola línea. +Suponga que se proporciona el siguiente número de entrada al programa: + +```bash +8 +``` + +Entonces, la salida debería ser: + +```bash +40320 +``` + +## 💡Pista: + +En caso de que los datos de entrada sean suministrados en la pregunta, se debe suponer que es una entrada de consola. \ No newline at end of file diff --git a/exercises/21-factorial/README.md b/exercises/021-factorial/README.md similarity index 100% rename from exercises/21-factorial/README.md rename to exercises/021-factorial/README.md diff --git a/exercises/21-factorial/app.py b/exercises/021-factorial/app.py similarity index 100% rename from exercises/21-factorial/app.py rename to exercises/021-factorial/app.py diff --git a/exercises/21-factorial/solution.hide.py b/exercises/021-factorial/solution.hide.py similarity index 100% rename from exercises/21-factorial/solution.hide.py rename to exercises/021-factorial/solution.hide.py diff --git a/exercises/022-Integral/README.es.md b/exercises/022-Integral/README.es.md new file mode 100644 index 00000000..de2270c6 --- /dev/null +++ b/exercises/022-Integral/README.es.md @@ -0,0 +1,11 @@ +# `22` Integral + +Con un número entero n, escribe un programa para generar un diccionario que contenga (i, i*i) tal que sea un número entero entre 1 y n (ambos incluidos). y luego el programa debería imprimir el diccionario. +Suponga que se proporciona la siguiente entrada al programa: +8 +Entonces, la salida debería ser: +{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64} + +Sugerencias: +En caso de que se proporcionen datos de entrada a la pregunta, se debe suponer que es una entrada de consola. +Considere usar dict () \ No newline at end of file diff --git a/exercises/22-Integral/README.md b/exercises/022-Integral/README.md similarity index 100% rename from exercises/22-Integral/README.md rename to exercises/022-Integral/README.md diff --git a/exercises/22-Integral/app.py b/exercises/022-Integral/app.py similarity index 100% rename from exercises/22-Integral/app.py rename to exercises/022-Integral/app.py diff --git a/exercises/22-Integral/solution.hide.py b/exercises/022-Integral/solution.hide.py similarity index 100% rename from exercises/22-Integral/solution.hide.py rename to exercises/022-Integral/solution.hide.py diff --git a/exercises/23-list-and-tuple/README.md b/exercises/023-list-and-tuple/README.md similarity index 100% rename from exercises/23-list-and-tuple/README.md rename to exercises/023-list-and-tuple/README.md diff --git a/exercises/23-list-and-tuple/app.py b/exercises/023-list-and-tuple/app.py similarity index 100% rename from exercises/23-list-and-tuple/app.py rename to exercises/023-list-and-tuple/app.py diff --git a/exercises/23-list-and-tuple/solution.hide.py b/exercises/023-list-and-tuple/solution.hide.py similarity index 100% rename from exercises/23-list-and-tuple/solution.hide.py rename to exercises/023-list-and-tuple/solution.hide.py diff --git a/exercises/24-class-with-two-methods/README.md b/exercises/024-class-with-two-methods/README.md similarity index 100% rename from exercises/24-class-with-two-methods/README.md rename to exercises/024-class-with-two-methods/README.md diff --git a/exercises/24-class-with-two-methods/app.py b/exercises/024-class-with-two-methods/app.py similarity index 100% rename from exercises/24-class-with-two-methods/app.py rename to exercises/024-class-with-two-methods/app.py diff --git a/exercises/24-class-with-two-methods/solution.hide.py b/exercises/024-class-with-two-methods/solution.hide.py similarity index 100% rename from exercises/24-class-with-two-methods/solution.hide.py rename to exercises/024-class-with-two-methods/solution.hide.py diff --git a/exercises/25-print-formula/README.md b/exercises/025-print-formula/README.md similarity index 100% rename from exercises/25-print-formula/README.md rename to exercises/025-print-formula/README.md diff --git a/exercises/25-print-formula/app.py b/exercises/025-print-formula/app.py similarity index 100% rename from exercises/25-print-formula/app.py rename to exercises/025-print-formula/app.py diff --git a/exercises/25-print-formula/solution.hide.py b/exercises/025-print-formula/solution.hide.py similarity index 100% rename from exercises/25-print-formula/solution.hide.py rename to exercises/025-print-formula/solution.hide.py diff --git a/exercises/26-two-dimensional-array/README.md b/exercises/026-two-dimensional-array/README.md similarity index 100% rename from exercises/26-two-dimensional-array/README.md rename to exercises/026-two-dimensional-array/README.md diff --git a/exercises/26-two-dimensional-array/app.py b/exercises/026-two-dimensional-array/app.py similarity index 100% rename from exercises/26-two-dimensional-array/app.py rename to exercises/026-two-dimensional-array/app.py diff --git a/exercises/26-two-dimensional-array/solution.hide.py b/exercises/026-two-dimensional-array/solution.hide.py similarity index 100% rename from exercises/26-two-dimensional-array/solution.hide.py rename to exercises/026-two-dimensional-array/solution.hide.py diff --git a/exercises/27-sequence-of-words/README.md b/exercises/027-sequence-of-words/README.md similarity index 100% rename from exercises/27-sequence-of-words/README.md rename to exercises/027-sequence-of-words/README.md diff --git a/exercises/27-sequence-of-words/app.py b/exercises/027-sequence-of-words/app.py similarity index 100% rename from exercises/27-sequence-of-words/app.py rename to exercises/027-sequence-of-words/app.py diff --git a/exercises/27-sequence-of-words/solution.hide.py b/exercises/027-sequence-of-words/solution.hide.py similarity index 100% rename from exercises/27-sequence-of-words/solution.hide.py rename to exercises/027-sequence-of-words/solution.hide.py diff --git a/exercises/28-sequence-of-lines/README.md b/exercises/028-sequence-of-lines/README.md similarity index 100% rename from exercises/28-sequence-of-lines/README.md rename to exercises/028-sequence-of-lines/README.md diff --git a/exercises/28-sequence-of-lines/app.py b/exercises/028-sequence-of-lines/app.py similarity index 100% rename from exercises/28-sequence-of-lines/app.py rename to exercises/028-sequence-of-lines/app.py diff --git a/exercises/28-sequence-of-lines/solution.hide.py b/exercises/028-sequence-of-lines/solution.hide.py similarity index 100% rename from exercises/28-sequence-of-lines/solution.hide.py rename to exercises/028-sequence-of-lines/solution.hide.py diff --git a/exercises/29-remove-duplicate-words/README.md b/exercises/029-remove-duplicate-words/README.md similarity index 100% rename from exercises/29-remove-duplicate-words/README.md rename to exercises/029-remove-duplicate-words/README.md diff --git a/exercises/29-remove-duplicate-words/app.py b/exercises/029-remove-duplicate-words/app.py similarity index 100% rename from exercises/29-remove-duplicate-words/app.py rename to exercises/029-remove-duplicate-words/app.py diff --git a/exercises/29-remove-duplicate-words/solution.hide.py b/exercises/029-remove-duplicate-words/solution.hide.py similarity index 100% rename from exercises/29-remove-duplicate-words/solution.hide.py rename to exercises/029-remove-duplicate-words/solution.hide.py diff --git a/exercises/30-divisable-binary/README.md b/exercises/030-divisable-binary/README.md similarity index 100% rename from exercises/30-divisable-binary/README.md rename to exercises/030-divisable-binary/README.md diff --git a/exercises/30-divisable-binary/app.py b/exercises/030-divisable-binary/app.py similarity index 100% rename from exercises/30-divisable-binary/app.py rename to exercises/030-divisable-binary/app.py diff --git a/exercises/30-divisable-binary/solution.hide.py b/exercises/030-divisable-binary/solution.hide.py similarity index 100% rename from exercises/30-divisable-binary/solution.hide.py rename to exercises/030-divisable-binary/solution.hide.py diff --git a/exercises/31-sum-eigth-digit/README.md b/exercises/031-sum-eigth-digit/README.md similarity index 100% rename from exercises/31-sum-eigth-digit/README.md rename to exercises/031-sum-eigth-digit/README.md diff --git a/exercises/31-sum-eigth-digit/app.py b/exercises/031-sum-eigth-digit/app.py similarity index 100% rename from exercises/31-sum-eigth-digit/app.py rename to exercises/031-sum-eigth-digit/app.py diff --git a/exercises/31-sum-eigth-digit/solution.hide.py b/exercises/031-sum-eigth-digit/solution.hide.py similarity index 100% rename from exercises/31-sum-eigth-digit/solution.hide.py rename to exercises/031-sum-eigth-digit/solution.hide.py diff --git a/exercises/32-numbers-of-letters-and-digits/README.md b/exercises/032-numbers-of-letters-and-digits/README.md similarity index 100% rename from exercises/32-numbers-of-letters-and-digits/README.md rename to exercises/032-numbers-of-letters-and-digits/README.md diff --git a/exercises/32-numbers-of-letters-and-digits/app.py b/exercises/032-numbers-of-letters-and-digits/app.py similarity index 100% rename from exercises/32-numbers-of-letters-and-digits/app.py rename to exercises/032-numbers-of-letters-and-digits/app.py diff --git a/exercises/32-numbers-of-letters-and-digits/solution.hide.py b/exercises/032-numbers-of-letters-and-digits/solution.hide.py similarity index 100% rename from exercises/32-numbers-of-letters-and-digits/solution.hide.py rename to exercises/032-numbers-of-letters-and-digits/solution.hide.py diff --git a/exercises/33-number-of-uppercase/README.md b/exercises/033-number-of-uppercase/README.md similarity index 100% rename from exercises/33-number-of-uppercase/README.md rename to exercises/033-number-of-uppercase/README.md diff --git a/exercises/33-number-of-uppercase/app.py b/exercises/033-number-of-uppercase/app.py similarity index 100% rename from exercises/33-number-of-uppercase/app.py rename to exercises/033-number-of-uppercase/app.py diff --git a/exercises/33-number-of-uppercase/solution.hide.py b/exercises/033-number-of-uppercase/solution.hide.py similarity index 100% rename from exercises/33-number-of-uppercase/solution.hide.py rename to exercises/033-number-of-uppercase/solution.hide.py diff --git a/exercises/34-a_aa_aaa_aaaa/README.md b/exercises/034-a_aa_aaa_aaaa/README.md similarity index 100% rename from exercises/34-a_aa_aaa_aaaa/README.md rename to exercises/034-a_aa_aaa_aaaa/README.md diff --git a/exercises/34-a_aa_aaa_aaaa/app.py b/exercises/034-a_aa_aaa_aaaa/app.py similarity index 100% rename from exercises/34-a_aa_aaa_aaaa/app.py rename to exercises/034-a_aa_aaa_aaaa/app.py diff --git a/exercises/34-a_aa_aaa_aaaa/solution.hide.py b/exercises/034-a_aa_aaa_aaaa/solution.hide.py similarity index 100% rename from exercises/34-a_aa_aaa_aaaa/solution.hide.py rename to exercises/034-a_aa_aaa_aaaa/solution.hide.py diff --git a/exercises/35-square-each-odd-number/README.md b/exercises/035-square-each-odd-number/README.md similarity index 100% rename from exercises/35-square-each-odd-number/README.md rename to exercises/035-square-each-odd-number/README.md diff --git a/exercises/35-square-each-odd-number/app.py b/exercises/035-square-each-odd-number/app.py similarity index 100% rename from exercises/35-square-each-odd-number/app.py rename to exercises/035-square-each-odd-number/app.py diff --git a/exercises/35-square-each-odd-number/solution.hide.py b/exercises/035-square-each-odd-number/solution.hide.py similarity index 100% rename from exercises/35-square-each-odd-number/solution.hide.py rename to exercises/035-square-each-odd-number/solution.hide.py diff --git a/exercises/36-net-amount/README.md b/exercises/036-net-amount/README.md similarity index 100% rename from exercises/36-net-amount/README.md rename to exercises/036-net-amount/README.md diff --git a/exercises/36-net-amount/app.py b/exercises/036-net-amount/app.py similarity index 100% rename from exercises/36-net-amount/app.py rename to exercises/036-net-amount/app.py diff --git a/exercises/36-net-amount/solution.hide.py b/exercises/036-net-amount/solution.hide.py similarity index 100% rename from exercises/36-net-amount/solution.hide.py rename to exercises/036-net-amount/solution.hide.py diff --git a/exercises/37-validity-of-password/README.md b/exercises/037-validity-of-password/README.md similarity index 100% rename from exercises/37-validity-of-password/README.md rename to exercises/037-validity-of-password/README.md diff --git a/exercises/37-validity-of-password/app.py b/exercises/037-validity-of-password/app.py similarity index 100% rename from exercises/37-validity-of-password/app.py rename to exercises/037-validity-of-password/app.py diff --git a/exercises/37-validity-of-password/solution.hide.py b/exercises/037-validity-of-password/solution.hide.py similarity index 100% rename from exercises/37-validity-of-password/solution.hide.py rename to exercises/037-validity-of-password/solution.hide.py diff --git a/exercises/38-sort-tuples-ascending/README.md b/exercises/038-sort-tuples-ascending/README.md similarity index 100% rename from exercises/38-sort-tuples-ascending/README.md rename to exercises/038-sort-tuples-ascending/README.md diff --git a/exercises/38-sort-tuples-ascending/app.py b/exercises/038-sort-tuples-ascending/app.py similarity index 100% rename from exercises/38-sort-tuples-ascending/app.py rename to exercises/038-sort-tuples-ascending/app.py diff --git a/exercises/38-sort-tuples-ascending/solution.hide.py b/exercises/038-sort-tuples-ascending/solution.hide.py similarity index 100% rename from exercises/38-sort-tuples-ascending/solution.hide.py rename to exercises/038-sort-tuples-ascending/solution.hide.py diff --git a/exercises/39-class-that-iterates/README.md b/exercises/039-class-that-iterates/README.md similarity index 100% rename from exercises/39-class-that-iterates/README.md rename to exercises/039-class-that-iterates/README.md diff --git a/exercises/39-class-that-iterates/app.py b/exercises/039-class-that-iterates/app.py similarity index 100% rename from exercises/39-class-that-iterates/app.py rename to exercises/039-class-that-iterates/app.py diff --git a/exercises/39-class-that-iterates/solution.hide.py b/exercises/039-class-that-iterates/solution.hide.py similarity index 100% rename from exercises/39-class-that-iterates/solution.hide.py rename to exercises/039-class-that-iterates/solution.hide.py diff --git a/exercises/40-compute-robot-distance/README.md b/exercises/040-compute-robot-distance/README.md similarity index 100% rename from exercises/40-compute-robot-distance/README.md rename to exercises/040-compute-robot-distance/README.md diff --git a/exercises/40-compute-robot-distance/app.py b/exercises/040-compute-robot-distance/app.py similarity index 100% rename from exercises/40-compute-robot-distance/app.py rename to exercises/040-compute-robot-distance/app.py diff --git a/exercises/40-compute-robot-distance/solution.hide.py b/exercises/040-compute-robot-distance/solution.hide.py similarity index 100% rename from exercises/40-compute-robot-distance/solution.hide.py rename to exercises/040-compute-robot-distance/solution.hide.py diff --git a/exercises/41-frequency-of-words/README.md b/exercises/041-frequency-of-words/README.md similarity index 100% rename from exercises/41-frequency-of-words/README.md rename to exercises/041-frequency-of-words/README.md diff --git a/exercises/41-frequency-of-words/app.py b/exercises/041-frequency-of-words/app.py similarity index 100% rename from exercises/41-frequency-of-words/app.py rename to exercises/041-frequency-of-words/app.py diff --git a/exercises/41-frequency-of-words/solution.hide.py b/exercises/041-frequency-of-words/solution.hide.py similarity index 100% rename from exercises/41-frequency-of-words/solution.hide.py rename to exercises/041-frequency-of-words/solution.hide.py diff --git a/exercises/042-Clock face/README.es.md b/exercises/042-Clock face/README.es.md new file mode 100644 index 00000000..d6b71cd1 --- /dev/null +++ b/exercises/042-Clock face/README.es.md @@ -0,0 +1,20 @@ +# `42` Clock Face + +## 📝 Instrucciones: + +La manecilla de la hora de un reloj analógico giró x grados desde la medianoche. Determina el ángulo con el que giró el minutero desde el inicio de la hora actual. La entrada y la salida en estos problemas son números enteros. + +**Ejemplo de input/entrada** +190 +(6:20) + +**Ejemplo de output/salida** +120 +(20 min) + +**Theory** +Si no sabes cómo comenzar a resolver esta tarea, revisa una teoría para esta lección: +https://snakify.org/lessons/integer_float_numbers/ + +También puede probar fragmentos teóricos paso a paso: +https://snakify.org/lessons/integer_float_numbers/steps/1/ \ No newline at end of file diff --git a/exercises/042-Clock face/README.md b/exercises/042-Clock face/README.md new file mode 100644 index 00000000..7c066c10 --- /dev/null +++ b/exercises/042-Clock face/README.md @@ -0,0 +1,20 @@ +# `42` Clock Face + +## 📝 Instructions: + +The hour hand of an analog clock turned α degrees since the midnight. Determine the angle by which the minute hand turned since the start of the current hour. Input and output in this problems are integers. + +**Example input** +190 +(6:20) + +**Example output** +120 +(20 min) + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/integer_float_numbers/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/integer_float_numbers/steps/1/ \ No newline at end of file diff --git a/exercises/042-Clock face/app.py b/exercises/042-Clock face/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/042-Clock face/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/043-School desks/README.es.md b/exercises/043-School desks/README.es.md new file mode 100644 index 00000000..3d71de4d --- /dev/null +++ b/exercises/043-School desks/README.es.md @@ -0,0 +1,25 @@ +# `43` School Desks + +## 📝 Instrucciones: + +Una escuela decidió reemplazar los escritorios en tres aulas. En cada escritorio se sientan dos estudiantes. Dado el número de estudiantes en cada clase, imprima la menor cantidad posible de escritorios que se puedan comprar. + +El programa debe leer tres números enteros: el número de estudiantes en cada una de las tres clases, a, byc respectivamente. + +En la primera prueba hay tres grupos. El primer grupo tiene 20 estudiantes y, por tanto, necesita 10 pupitres. El segundo grupo tiene 21 estudiantes, por lo que pueden arreglárselas con no menos de 11 escritorios. 11 pupitres también son suficientes para el tercer grupo de 22 estudiantes. Entonces necesitamos 32 escritorios en total. + +Example input +20 +21 +22 + +Example output +32 + + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/integer_float_numbers/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/integer_float_numbers/steps/1/ \ No newline at end of file diff --git a/exercises/043-School desks/README.md b/exercises/043-School desks/README.md new file mode 100644 index 00000000..410a881a --- /dev/null +++ b/exercises/043-School desks/README.md @@ -0,0 +1,25 @@ +# `43` School Desks + +## 📝 Instructions: + +A school decided to replace the desks in three classrooms. Each desk sits two students. Given the number of students in each class, print the smallest possible number of desks that can be purchased. + +The program should read three integers: the number of students in each of the three classes, a, b and c respectively. + +In the first test there are three groups. The first group has 20 students and thus needs 10 desks. The second group has 21 students, so they can get by with no fewer than 11 desks. 11 desks is also enough for the third group of 22 students. So we need 32 desks in total. + +**Example input** +20 +21 +22 + +**Example output** +32 + + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/integer_float_numbers/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/integer_float_numbers/steps/1/ \ No newline at end of file diff --git a/exercises/043-School desks/app.py b/exercises/043-School desks/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/043-School desks/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/044-Odd or even/README.md b/exercises/044-Odd or even/README.md new file mode 100644 index 00000000..8f642b13 --- /dev/null +++ b/exercises/044-Odd or even/README.md @@ -0,0 +1,23 @@ +# `44` Odd or Even + +## 📝 Instructions: + +Given an integer, print "odd" if it's odd and print "even" otherwise. + +**Example input #1** +5 + +**Example output #1** +odd + +**Example input #2** +6 + +**Example output #2** +even + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks:https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/044-Odd or even/app.py b/exercises/044-Odd or even/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/044-Odd or even/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/045-Minimum of two numbers/README.md b/exercises/045-Minimum of two numbers/README.md new file mode 100644 index 00000000..4d9fc549 --- /dev/null +++ b/exercises/045-Minimum of two numbers/README.md @@ -0,0 +1,19 @@ +# `45` Minimum of two numbers + +## 📝 Instructions: + +Given the two integers, print the least of them. + +**Example input** +3 +7 + +**Example output** +3 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/045-Minimum of two numbers/app.py b/exercises/045-Minimum of two numbers/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/045-Minimum of two numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/046-Sign function/README.md b/exercises/046-Sign function/README.md new file mode 100644 index 00000000..5d7dd271 --- /dev/null +++ b/exercises/046-Sign function/README.md @@ -0,0 +1,20 @@ +# `46` Sign function + +## 📝 Instructions: + +For the given integer X print 1 if it's positive, -1 if it's negative, or 0 if it's equal to zero. + +Try to use the cascade if-elif-else for it. + +**Example input** +179 + +**Example output** +1 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/046-Sign function/app.py b/exercises/046-Sign function/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/046-Sign function/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/047-Three-digit number/README.md b/exercises/047-Three-digit number/README.md new file mode 100644 index 00000000..cc914819 --- /dev/null +++ b/exercises/047-Three-digit number/README.md @@ -0,0 +1,24 @@ +# `47` Three-digit number + +## 📝 Instructions: + +Given an integer, print "YES" if it's a three-digit number and print "NO" otherwise. + +**Example input #1** +179 + +**Example output #1** +YES + +**Example input #2** +1234 + +**Example output #2** +NO + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/047-Three-digit number/app.py b/exercises/047-Three-digit number/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/047-Three-digit number/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/048-Single positive/README.md b/exercises/048-Single positive/README.md new file mode 100644 index 00000000..749cf5e8 --- /dev/null +++ b/exercises/048-Single positive/README.md @@ -0,0 +1,26 @@ +# `48` Single Positive + +## 📝 Instructions: + +Given two non-zero integers, print "YES" if exactly one of them is positive and print "NO" otherwise. + +Example input #1 +-5 +10 + +Example output #1 +YES + +Example input #2 +5 +10 + +Example output #2 +NO + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/048-Single positive/app.py b/exercises/048-Single positive/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/048-Single positive/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/049-Ascending digits/README.md b/exercises/049-Ascending digits/README.md new file mode 100644 index 00000000..520302ee --- /dev/null +++ b/exercises/049-Ascending digits/README.md @@ -0,0 +1,24 @@ +# `49` Ascending digits + +## 📝 Instructions: + +Given a three-digit integer X consisting of three different digits, print "YES" if its three digits are going in an ascending order from left to right and print "NO" otherwise. + +**Example input #1** +179 + +**Example output #1** +YES + +**Example input #2** +197 + +**Example output #2** +NO + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/049-Ascending digits/app.py b/exercises/049-Ascending digits/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/049-Ascending digits/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/050-Four-digit palindrome/README.md b/exercises/050-Four-digit palindrome/README.md new file mode 100644 index 00000000..c14e0898 --- /dev/null +++ b/exercises/050-Four-digit palindrome/README.md @@ -0,0 +1,24 @@ +# `50` Four-digit palindrome + +## 📝 Instructions: + +Let's call an integer a palindrome if it remains the same after reading its digits from right to left. Given a four-digit integer, print "YES" if it's a palindrome and print "NO" otherwise. + +**Example input #1** +1221 + +**Example output #1** +YES + +**Example input #2** +1234 + +**Example output #2** +NO + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/050-Four-digit palindrome/app.py b/exercises/050-Four-digit palindrome/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/050-Four-digit palindrome/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/051-Minimum of three numbers/README.md b/exercises/051-Minimum of three numbers/README.md new file mode 100644 index 00000000..8f004389 --- /dev/null +++ b/exercises/051-Minimum of three numbers/README.md @@ -0,0 +1,20 @@ +# `51` Minimum of three numbers + +## 📝 Instructions: + +Given three integers, print the least of them. + +**Example input** +5 +3 +7 + +**Example output** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/051-Minimum of three numbers/app.py b/exercises/051-Minimum of three numbers/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/051-Minimum of three numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/052-Days in month/README.md b/exercises/052-Days in month/README.md new file mode 100644 index 00000000..872fb4c4 --- /dev/null +++ b/exercises/052-Days in month/README.md @@ -0,0 +1,26 @@ +# `52` Days in month + +## 📝 Instructions: + +Given a month - an integer from 1 to 12, print the number of days in it in the year 2017. + +**Example input #1** +1 +(January) + +**Example output #1** +31 + +**Example input #2** +2 +(February) + +**Example output #2** +28 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/052-Days in month/app.py b/exercises/052-Days in month/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/052-Days in month/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/053-Equal numbers/README.md b/exercises/053-Equal numbers/README.md new file mode 100644 index 00000000..0f2f2d72 --- /dev/null +++ b/exercises/053-Equal numbers/README.md @@ -0,0 +1,20 @@ +# `53` Equal numbers + +## 📝 Instructions: + +Given three integers. Determine how many of them are equal to each other. The program must print one of the numbers: 3 (if all are same), 2 (if two of them are equal to each other and the third one is different) or 0 (if all numbers are different). + +**Example input** +10 +5 +10 + +**Example output** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/053-Equal numbers/app.py b/exercises/053-Equal numbers/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/053-Equal numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/054-Order of outlier/README.md b/exercises/054-Order of outlier/README.md new file mode 100644 index 00000000..90b33628 --- /dev/null +++ b/exercises/054-Order of outlier/README.md @@ -0,0 +1,28 @@ +# `54` Order of outlier + +## 📝 Instructions: + +Given three integers, in which two are equal to each other and the third one is different. Print the order number of this different one - 1, 2 or 3. + +**Example input #1** +10 +5 +10 + +**Example output #1** +2 + +**Example input #2** +10 +10 +5 + +**Example output #2** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/054-Order of outlier/app.py b/exercises/054-Order of outlier/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/054-Order of outlier/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/055-Rook move/README.md b/exercises/055-Rook move/README.md new file mode 100644 index 00000000..cd7915b9 --- /dev/null +++ b/exercises/055-Rook move/README.md @@ -0,0 +1,25 @@ +# `55` Rook move + +## 📝 Instructions: + +Chess rook moves horizontally or vertically. Given two different squares of the chessboard, determine whether a rook can go from the first square to the second one in a single move. + +The program receives four numbers from 1 to 8 each specifying the column and the row number, first two - for the first square, and the last two - for the second square. The program should output YES if a rook can go from the first square to the second one in a single move or NO otherwise. + + + +**Example input** +4 +4 +5 +5 + +**Example output** +NO + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ diff --git a/exercises/055-Rook move/Rock Move exercise.jpg b/exercises/055-Rook move/Rock Move exercise.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1f563d722f0ec4e87888efff3131b1550f702b9 GIT binary patch literal 46884 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 literal 0 HcmV?d00001 diff --git a/exercises/055-Rook move/app.py b/exercises/055-Rook move/app.py new file mode 100644 index 00000000..6300044f --- /dev/null +++ b/exercises/055-Rook move/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a)R \ No newline at end of file diff --git a/exercises/056-Chessboard - black square/Chessboard - black square.jpg b/exercises/056-Chessboard - black square/Chessboard - black square.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97d2d275956cd4ff47b376221b0de2837a98f4fa GIT binary patch literal 41276 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 literal 0 HcmV?d00001 diff --git a/exercises/056-Chessboard - black square/README.md b/exercises/056-Chessboard - black square/README.md new file mode 100644 index 00000000..52e3234c --- /dev/null +++ b/exercises/056-Chessboard - black square/README.md @@ -0,0 +1,30 @@ +# `56` Chessboard - black square + +## 📝 Instructions: + +Given a square of a chessboard. If it's a black square, print YES, otherwise print NO. + +The program receives two integers from 1 to 8 specifying the column and row number of the square. + + + +**Example input #1** +1 +1 + +**Example output #1** +YES + +**Example input #2** +1 +2 + +**Example output #2** +NO + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/056-Chessboard - black square/app.py b/exercises/056-Chessboard - black square/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/056-Chessboard - black square/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/057-Chessboard - same color/Chessboard - same color.jpg b/exercises/057-Chessboard - same color/Chessboard - same color.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97d2d275956cd4ff47b376221b0de2837a98f4fa GIT binary patch literal 41276 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 literal 0 HcmV?d00001 diff --git a/exercises/057-Chessboard - same color/README.md b/exercises/057-Chessboard - same color/README.md new file mode 100644 index 00000000..ce752dba --- /dev/null +++ b/exercises/057-Chessboard - same color/README.md @@ -0,0 +1,25 @@ +# `57` Chessboard - same color + +## 📝 Instructions: + +Given two squares of a chessboard. If they are painted in the same color, print YES, otherwise print NO. + +The program receives four integers from 1 to 8, each specifying the column and row number, first two - for the first square, and then the last two - for the second square. + + + +**Example input** +1 +1 +2 +6 + +**Example output** +YES + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/057-Chessboard - same color/app.py b/exercises/057-Chessboard - same color/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/057-Chessboard - same color/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/058-King move/README.md b/exercises/058-King move/README.md new file mode 100644 index 00000000..b881be19 --- /dev/null +++ b/exercises/058-King move/README.md @@ -0,0 +1,25 @@ +# `58` King move + +## 📝 Instructions: + +Chess king moves one square in any direction. Given two different squares of the chessboard, determine whether a king can go from the first square to the second one in a single move. + +The program receives four numbers from 1 to 8 each specifying the column and the row number, first two - for the first square, and the last two - for the second square. The program should output YES if a king can go from the first square to the second one in a single move or NO otherwise. + + + +**Example input** +4 +4 +5 +5 + +**Example output** +YES + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ diff --git a/exercises/058-King move/app.py b/exercises/058-King move/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/058-King move/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/059-Bishop move/Bishop move.jpg b/exercises/059-Bishop move/Bishop move.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8daf8ac0040a34faea82fd2663a0c6360fb257e GIT binary patch literal 22328 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 literal 0 HcmV?d00001 diff --git a/exercises/060-Queen move/README.md b/exercises/060-Queen move/README.md new file mode 100644 index 00000000..6ee9c2b5 --- /dev/null +++ b/exercises/060-Queen move/README.md @@ -0,0 +1,26 @@ +# `60` Queen move + +## 📝 Instructions: + +Chess queen moves horizontally, vertically or diagonally in any number of squares. Given two different squares of the chessboard, determine whether a queen can go from the first square to the second one in a single move. + +The program receives four numbers from 1 to 8 each specifying the column and the row number, first two - for the first square, and the last two - for the second square. The program should output YES if a queen can go from the first square to the second one in a single move or NO otherwise. + + + + +**Example input** +1 +1 +2 +2 + +**Example output** +YES + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/060-Queen move/app.py b/exercises/060-Queen move/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/060-Queen move/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/061-Knight move/README.md b/exercises/061-Knight move/README.md new file mode 100644 index 00000000..3e29e32e --- /dev/null +++ b/exercises/061-Knight move/README.md @@ -0,0 +1,25 @@ +# `61` Knight move + +## 📝 Instructions: + +Chess knight can move to a square that is two squares away horizontally and one square vertically, or two squares vertically and one square horizontally. The complete move therefore looks like the letter L. Given two different squares of the chessboard, determine whether a knight can go from the first square to the second one in a single move. + +The program receives four numbers from 1 to 8 each specifying the column and the row number, first two - for the first square, and the last two - for the second square. The program should output YES if a knight can go from the first square to the second one in a single move or NO otherwise. + + + +**Example input** +2 +4 +3 +2 + +**Example output** +YES + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/061-Knight move/app.py b/exercises/061-Knight move/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/061-Knight move/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/061-Knight move/knight move.jpg b/exercises/061-Knight move/knight move.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e0a50da28d3ece2d8854d90e487ea2970e14a51 GIT binary patch literal 17420 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 nOy?@e_sG3F=8KkBZp(@-jaGL%PEZ)H+ literal 0 HcmV?d00001 diff --git a/exercises/062-Leap year/README.md b/exercises/062-Leap year/README.md new file mode 100644 index 00000000..a6acf45c --- /dev/null +++ b/exercises/062-Leap year/README.md @@ -0,0 +1,25 @@ +# `62` Leap year + +## 📝 Instructions: + +Given the year number. You need to check if this year is a leap year. If it is, print LEAP, otherwise print COMMON. + +The rules in Gregorian calendar are as follows: + +a year is a leap year if its number is exactly divisible by 4 and is not exactly divisible by 100 +a year is always a leap year if its number is exactly divisible by 400 + +Warning. The words LEAP and COMMON should be printed all caps. + +**Example input** +2012 + +**Example output** +LEAP + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/062-Leap year/app.py b/exercises/062-Leap year/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/062-Leap year/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/063-Next day/README.md b/exercises/063-Next day/README.md new file mode 100644 index 00000000..cbf846aa --- /dev/null +++ b/exercises/063-Next day/README.md @@ -0,0 +1,30 @@ +# `63` Next day + +## 📝 Instructions: + +Given a month (an integer from 1 to 12) and a day in it (an integer from 1 to 31) in the year 2017, print the month and the day of the next day to it. + +**Example input #1** +3 +30 +(March 30) + +**Example output #1** +3 +31 + +**Example input #2** +3 +31 +(March 31) + +**Example output #2** +4 +1 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/063-Next day/app.py b/exercises/063-Next day/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/063-Next day/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/064-Linear equation/README.md b/exercises/064-Linear equation/README.md new file mode 100644 index 00000000..5f60c6a8 --- /dev/null +++ b/exercises/064-Linear equation/README.md @@ -0,0 +1,26 @@ +# `64` Linear equation + +## 📝 Instructions: + +Write a program that solves a linear equation ax = b in integers. Given two integers a and b (a may be zero), print a single integer root if it exists and print "no solution" or "many solutions" otherwise. + +**Example input #1** +1 +-2 + +**Example output #1** +-2 + +**Example input #2** +2 +-1 + +**Example output #2** +no solution + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/064-Linear equation/app.py b/exercises/064-Linear equation/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/064-Linear equation/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/065-Minimum of five numbers/README.md b/exercises/065-Minimum of five numbers/README.md new file mode 100644 index 00000000..3a335ddf --- /dev/null +++ b/exercises/065-Minimum of five numbers/README.md @@ -0,0 +1,22 @@ +# `65` Minimum of five numbers + +## 📝 Instructions: + +Given five integers, print the least of them. + +**Example input** +10 +20 +30 +40 +50 + +**Example output** +10 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/066-Vertices of rectangle/README.md b/exercises/066-Vertices of rectangle/README.md new file mode 100644 index 00000000..707322e3 --- /dev/null +++ b/exercises/066-Vertices of rectangle/README.md @@ -0,0 +1,38 @@ +# `66` Vertices of rectangle + +## 📝 Instructions: + +Given integer coordinates of three vertices of a rectangle whose sides are parallel to coordinate axes, find the coordinates of the fourth vertex of the rectangle. + + +**Example input #1** +1 +5 +7 +5 +1 +10 +three vertices are (1, 5), (7, 5), (1, 10) + +**Example output #1** +7 +10 + +**Example input #2** +1 +5 +7 +10 +1 +10 + +**Example output #2** +7 +5 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/066-Vertices of rectangle/app.py b/exercises/066-Vertices of rectangle/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/066-Vertices of rectangle/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/067-Sort three numbers/README.md b/exercises/067-Sort three numbers/README.md new file mode 100644 index 00000000..267b201c --- /dev/null +++ b/exercises/067-Sort three numbers/README.md @@ -0,0 +1,22 @@ +# `67` Sort three numbers + +## 📝 Instructions: + +Given three integers, print them in ascending order. + +**Example input** +5 +3 +7 + +**Example output** +3 +5 +7 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/067-Sort three numbers/app.py b/exercises/067-Sort three numbers/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/067-Sort three numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/068-Series - 1/README.md b/exercises/068-Series - 1/README.md new file mode 100644 index 00000000..8c9071d1 --- /dev/null +++ b/exercises/068-Series - 1/README.md @@ -0,0 +1,19 @@ +# `68` Series - 1 + +## 📝 Instructions: + +Given two integers A and B (A ≤ B). Print all numbers from A to B inclusively. + +**Example input** +1 +10 + +**Example output** +1 2 3 4 5 6 7 8 9 10 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/068-Series - 1/app.py b/exercises/068-Series - 1/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/068-Series - 1/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/069-Series - 2/README.md b/exercises/069-Series - 2/README.md new file mode 100644 index 00000000..3dc72b1b --- /dev/null +++ b/exercises/069-Series - 2/README.md @@ -0,0 +1,19 @@ +# `69` Series - 2 + +## 📝 Instructions: + +Given two integers A and B. Print all numbers from A to B inclusively, in increasing order, if A < B, or in decreasing order, if A ≥ B. + +**Example input** +8 +5 + +**Example output** +8 7 6 5 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/069-Series - 2/app.py b/exercises/069-Series - 2/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/069-Series - 2/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/070-Sum of ten numbers/README.md b/exercises/070-Sum of ten numbers/README.md new file mode 100644 index 00000000..d842812e --- /dev/null +++ b/exercises/070-Sum of ten numbers/README.md @@ -0,0 +1,27 @@ +# `70` Sum of ten numbers + +## 📝 Instructions: + +10 numbers are given in the input. Read them and print their sum. Use as few variables as you can. + +**Example input** +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 + +**Example output** +45 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/070-Sum of ten numbers/app.py b/exercises/070-Sum of ten numbers/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/070-Sum of ten numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/071-Sum of N numbers/README.md b/exercises/071-Sum of N numbers/README.md new file mode 100644 index 00000000..d13f7b68 --- /dev/null +++ b/exercises/071-Sum of N numbers/README.md @@ -0,0 +1,30 @@ +# `71` Sum of N numbers + +## 📝 Instructions: + +N numbers are given in the input. Read them and print their sum. + +The first line of input contains the integer N, which is the number of integers to follow. Each of the next N lines contains one integer. Print the sum of these N integers. + +**Example input** +10 +1 +2 +1 +1 +1 +1 +3 +1 +1 +1 + +**Example output** +13 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/071-Sum of N numbers/app.py b/exercises/071-Sum of N numbers/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/071-Sum of N numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/072-Sum of cubes/README.md b/exercises/072-Sum of cubes/README.md new file mode 100644 index 00000000..bef5406c --- /dev/null +++ b/exercises/072-Sum of cubes/README.md @@ -0,0 +1,20 @@ +# `72` Sum of cubes + +## 📝 Instructions: + +For the given integer N calculate the following sum: + +1³ + 2³ + ... + N³ + +**Example input** +3 + +**Example output** +36 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/072-Sum of cubes/app.py b/exercises/072-Sum of cubes/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/072-Sum of cubes/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/073-Number of zeros/README.md b/exercises/073-Number of zeros/README.md new file mode 100644 index 00000000..f255da6b --- /dev/null +++ b/exercises/073-Number of zeros/README.md @@ -0,0 +1,25 @@ +# `73` Number of zeros + +## 📝 Instructions: + +Given N numbers: the first number in the input is N, after that N integers are given. Count the number of zeros among the given integers and print it. + +You need to count the number of numbers that are equal to zero, not the number of zero digits. + +**Example input** +5 +0 +700 +0 +200 +2 + +**Example output** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/073-Number of zeros/app.py b/exercises/073-Number of zeros/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/073-Number of zeros/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/074-Sum of factorials/README.md b/exercises/074-Sum of factorials/README.md new file mode 100644 index 00000000..26729a4c --- /dev/null +++ b/exercises/074-Sum of factorials/README.md @@ -0,0 +1,26 @@ +# `74` Sum of factorials + +## 📝 Instructions: + +In mathematics, the factorial of an integer n, denoted by n! is the following product: + +n! = 1 × 2 × … × n + +For the given integer n calculate the value + +1! + 2! + 3! + ... + n! + +Try to discover the solution that uses only one for-loop. And don't use math module in this exercise. + +**Example input** +4 + +**Example output** +33 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/074-Sum of factorials/app.py b/exercises/074-Sum of factorials/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/074-Sum of factorials/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/075-Lost card/README.md b/exercises/075-Lost card/README.md new file mode 100644 index 00000000..00875163 --- /dev/null +++ b/exercises/075-Lost card/README.md @@ -0,0 +1,24 @@ + # `75` Lost card + +## 📝 Instructions: + +There was a set of cards with numbers from 1 to N. One of the card is now lost. Determine the number on that lost card given the numbers for the remaining cards. + +Given a number N, followed by N − 1 integers representing the numbers on the remaining cards (distinct integers in the range from 1 to N). Find and print the number on the lost card. + +**Example input** +5 +3 +5 +2 +1 + +**Example output** +4 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/075-Lost card/app.py b/exercises/075-Lost card/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/075-Lost card/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/076-Ladder/README.md b/exercises/076-Ladder/README.md new file mode 100644 index 00000000..666ae457 --- /dev/null +++ b/exercises/076-Ladder/README.md @@ -0,0 +1,22 @@ + # `76` Ladder + +## 📝 Instructions: + +For given integer n ≤ 9 print a ladder of n steps. The k-th step consists of the integers from 1 to k without spaces between them. + +To do that, you can use the sep and end arguments for the function print(). + +**Example input** +3 + +**Example output** +1 +12 +123 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/for_loop_range/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/076-Ladder/app.py b/exercises/076-Ladder/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/076-Ladder/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/077-Slices/README.md b/exercises/077-Slices/README.md new file mode 100644 index 00000000..c78eee83 --- /dev/null +++ b/exercises/077-Slices/README.md @@ -0,0 +1,37 @@ + # `77` Slices + +## 📝 Instructions: + +You are given a string. + +In the first line, print the third character of this string. +In the second line, print the second to last character of this string. +In the third line, print the first five characters of this string. +In the fourth line, print all but the last two characters of this string. +In the fifth line, print all the characters of this string with even indices (remember indexing starts at 0, so the characters are displayed starting with the first). +In the sixth line, print all the characters of this string with odd indices (i.e. starting with the second character in the string). +In the seventh line, print all the characters of the string in reverse order. +In the eighth line, print every second character of the string in reverse order, starting from the last one. +In the ninth line, print the length of the given string. + + +**Example input** +Abrakadabra + +**Example output** +r +r +Abrak +Abrakadab +Arkdba +baaar +arbadakarbA +abdkrA +11 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/077-Slices/app.py b/exercises/077-Slices/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/077-Slices/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/078-Number of words/README.md b/exercises/078-Number of words/README.md new file mode 100644 index 00000000..e571a62f --- /dev/null +++ b/exercises/078-Number of words/README.md @@ -0,0 +1,18 @@ + # `78` Number of words + +## 📝 Instructions: + +Given a string consisting of words separated by spaces. Determine how many words it has. To solve the problem, use the method count. + +**Example input** +Hello world + +**Example output** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/078-Number of words/app.py b/exercises/078-Number of words/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/078-Number of words/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/079-Two halves/README.md b/exercises/079-Two halves/README.md new file mode 100644 index 00000000..a3ccb223 --- /dev/null +++ b/exercises/079-Two halves/README.md @@ -0,0 +1,20 @@ + # `79` Two halves + +## 📝 Instructions: + +Given a string, cut it into two equal parts. If the length of the string is odd, leave the middle character within the first chunk, so that the first string contains one more character than the second. Now print a new string on a single row with the first and second halves swapped: second half first and the first half last. + +Can you solve it without using if? + +**Example input** +Qwerty + +**Example output** +rtyQwe + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/079-Two halves/app.py b/exercises/079-Two halves/app.py new file mode 100644 index 00000000..15a81d50 --- /dev/null +++ b/exercises/079-Two halves/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) diff --git a/exercises/080-Swap two words/README.md b/exercises/080-Swap two words/README.md new file mode 100644 index 00000000..f74f342d --- /dev/null +++ b/exercises/080-Swap two words/README.md @@ -0,0 +1,20 @@ + # `80` Swap two words + +## 📝 Instructions: + +Given a string consisting of exactly two words separated by a space. Print a new string with the first and second words swapped: the second word is printed first. Consider all adjacent non-space characters a single word. + +Can you solve it without using if-else and loops? + +**Example input** +Hello, world! + +**Example output** +world! Hello, + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/080-Swap two words/app.py b/exercises/080-Swap two words/app.py new file mode 100644 index 00000000..15a81d50 --- /dev/null +++ b/exercises/080-Swap two words/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) diff --git a/exercises/081-First and last occurrence/README.md b/exercises/081-First and last occurrence/README.md new file mode 100644 index 00000000..c8e1d747 --- /dev/null +++ b/exercises/081-First and last occurrence/README.md @@ -0,0 +1,30 @@ + # `81` First and last occurrence + +## 📝 Instructions: + +Given a string that may contain a letter f. Print the index of the first and last occurrence of f. If the letter f occurs only once, then output its index once. If the letter f does not occur, print -1. + +**Example input #1** +comfort + +**Example output #1** +3 + +**Example input #2** +office + +**Example output #2** +1 2 + +**Example input #3** +hello + +**Example output #3** +-1 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/081-First and last occurrence/app.py b/exercises/081-First and last occurrence/app.py new file mode 100644 index 00000000..15a81d50 --- /dev/null +++ b/exercises/081-First and last occurrence/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) diff --git a/exercises/082-Second occurrence/README.md b/exercises/082-Second occurrence/README.md new file mode 100644 index 00000000..c1c70720 --- /dev/null +++ b/exercises/082-Second occurrence/README.md @@ -0,0 +1,30 @@ + # `82` Second occurrence + +## 📝 Instructions: + +Given a string that may contain a letter p. Print the index of the second occurrence of p. If the letter p occurs only once, then print -1, and if the string does not contain the letter p, then print -2. + +**Example input #1** +appropriate + +**Example output #1** +2 + +**Example input #2** +spare + +**Example output #2** +-1 + +**Example input #3** +reason + +**Example output #3** +-2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/082-Second occurrence/app.py b/exercises/082-Second occurrence/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/082-Second occurrence/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/083-Remove fragment/README.md b/exercises/083-Remove fragment/README.md new file mode 100644 index 00000000..58e932a2 --- /dev/null +++ b/exercises/083-Remove fragment/README.md @@ -0,0 +1,18 @@ + # `83` Remove fragment + +## 📝 Instructions: + +Given a string in which the letter h occurs at least twice. Remove from that string the first and the last occurrence of the letter h, as well as all the characters between them. + +**Example input** +In the hole in the ground there lived a hobbit + +**Example output** +In tobbit + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/083-Remove fragment/app.py b/exercises/083-Remove fragment/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/083-Remove fragment/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/084-Reverse fragment/README.md b/exercises/084-Reverse fragment/README.md new file mode 100644 index 00000000..1ef9107d --- /dev/null +++ b/exercises/084-Reverse fragment/README.md @@ -0,0 +1,18 @@ + # `84` Reverse fragment + +## 📝 Instructions: + +Given a string in which the letter h occurs at least twice, reverse the sequence of characters enclosed between the first and last occurrences of it. + +**Example input** +In the hole in the ground there lived a hobbit + +**Example output** +In th a devil ereht dnuorg eht ni eloh ehobbit + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/084-Reverse fragment/app.py b/exercises/084-Reverse fragment/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/084-Reverse fragment/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/085-Replace/README.md b/exercises/085-Replace/README.md new file mode 100644 index 00000000..a696e066 --- /dev/null +++ b/exercises/085-Replace/README.md @@ -0,0 +1,18 @@ + # `85` Replace + +## 📝 Instructions: + +Given a string. Replace in this string all the numbers 1 by the word one. + +**Example input** +1+1=2 + +**Example output** +one+one=2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/085-Replace/app.py b/exercises/085-Replace/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/085-Replace/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/086-Delete character/README.md b/exercises/086-Delete character/README.md new file mode 100644 index 00000000..0a921d62 --- /dev/null +++ b/exercises/086-Delete character/README.md @@ -0,0 +1,18 @@ + # `86` Delete character + +## 📝 Instructions: + +Given a string, delete all the characters @ from this string. + +**Example input** +Bilbo.Baggins@bagend.hobbiton.shire.me + +**Example output** +Bilbo.Bagginsbagend.hobbiton.shire.me + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/086-Delete character/app.py b/exercises/086-Delete character/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/086-Delete character/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/087-Replace in fragment/README.md b/exercises/087-Replace in fragment/README.md new file mode 100644 index 00000000..c575a8fc --- /dev/null +++ b/exercises/087-Replace in fragment/README.md @@ -0,0 +1,18 @@ + # `87` Replace in fragment + +## 📝 Instructions: + +Given a string in which the letter h occurs at least twice, replace every occurrence of the letter h by the letter H, except for the first and the last ones. + +**Example input** +In the hole in the ground there lived a hobbit + +**Example output** +In the Hole in tHe ground tHere lived a hobbit + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/087-Replace in fragment/app.py b/exercises/087-Replace in fragment/app.py new file mode 100644 index 00000000..b802a870 --- /dev/null +++ b/exercises/087-Replace in fragment/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) \ No newline at end of file diff --git a/exercises/088-Delete every third character/README.md b/exercises/088-Delete every third character/README.md new file mode 100644 index 00000000..7c8fecc4 --- /dev/null +++ b/exercises/088-Delete every third character/README.md @@ -0,0 +1,18 @@ + # `88` Delete every third character + +## 📝 Instructions: + +Given a string, delete all its characters whose indices are divisible by 3. + +**Example input** +Python + +**Example output** +yton + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/strings_str/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/strings_str/steps/1/ \ No newline at end of file diff --git a/exercises/088-Delete every third character/app.py b/exercises/088-Delete every third character/app.py new file mode 100644 index 00000000..15a81d50 --- /dev/null +++ b/exercises/088-Delete every third character/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a string: +# print(s) diff --git a/exercises/089-List of squares/README.md b/exercises/089-List of squares/README.md new file mode 100644 index 00000000..6629f580 --- /dev/null +++ b/exercises/089-List of squares/README.md @@ -0,0 +1,18 @@ + # `89` List of squares + +## 📝 Instructions: + +For a given integer N, print all the squares of positive integers where the square is less than or equal to N, in ascending order. + +**Example input** +50 + +**Example output** +1 4 9 16 25 36 49 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/089-List of squares/app.py b/exercises/089-List of squares/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/089-List of squares/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/090-Least divisor/README.md b/exercises/090-Least divisor/README.md new file mode 100644 index 00000000..4e592328 --- /dev/null +++ b/exercises/090-Least divisor/README.md @@ -0,0 +1,18 @@ + # `90` Least divisor + +## 📝 Instructions: + +Given an integer not less than 2. Print its smallest integer divisor greater than 1. + +**Example input** +15 + +**Example output** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/090-Least divisor/app.py b/exercises/090-Least divisor/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/090-Least divisor/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/091-Power of two/README.md b/exercises/091-Power of two/README.md new file mode 100644 index 00000000..9dad1840 --- /dev/null +++ b/exercises/091-Power of two/README.md @@ -0,0 +1,18 @@ + # `91` Power of two + +## 📝 Instructions: + +For a given integer X, find the greatest integer n where 2ⁿ is less than or equal to X. Print the exponent value and the result of the expression 2ⁿ. + +**Example input** +50 + +**Example output** +5 32 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/091-Power of two/app.py b/exercises/091-Power of two/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/091-Power of two/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/092-Jogging/README.md b/exercises/092-Jogging/README.md new file mode 100644 index 00000000..4fdd9df0 --- /dev/null +++ b/exercises/092-Jogging/README.md @@ -0,0 +1,23 @@ + # `92` Jogging + +## 📝 Instructions: + +As a future athlete you just started your practice for an upcoming event. On the first day you run x miles, and by the day of the event you must be able to run y miles. + +Calculate the number of days required for you to finally reach the required distance for the event, if you increases your distance each day by 10% from the previous day. + +Print one integer representing the number of days to reach the required distance. + +**Example input** +10 +30 + +**Example output** +13 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/092-Jogging/app.py b/exercises/092-Jogging/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/092-Jogging/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/093-Length of sequence/README.md b/exercises/093-Length of sequence/README.md new file mode 100644 index 00000000..35fda5d5 --- /dev/null +++ b/exercises/093-Length of sequence/README.md @@ -0,0 +1,22 @@ + # `93` Length of sequence + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. Determine the length of the sequence. The sequence ends with 0. Print the length of the sequence (not counting the 0). The numbers following the number 0 should be omitted. + +**Example input** +1 +7 +9 +0 +5 + +**Example output** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/093-Length of sequence/app.py b/exercises/093-Length of sequence/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/093-Length of sequence/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/094-Sum of sequence/README.md b/exercises/094-Sum of sequence/README.md new file mode 100644 index 00000000..a14bee21 --- /dev/null +++ b/exercises/094-Sum of sequence/README.md @@ -0,0 +1,21 @@ + # `94` Sum of sequence + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the sum of the sequence. + +**Example input** +1 +7 +9 +0 + +**Example output** +17 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/094-Sum of sequence/app.py b/exercises/094-Sum of sequence/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/094-Sum of sequence/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/095-Average of sequence/README.md b/exercises/095-Average of sequence/README.md new file mode 100644 index 00000000..317064c7 --- /dev/null +++ b/exercises/095-Average of sequence/README.md @@ -0,0 +1,20 @@ + # `95` Average of sequence + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the average of the sequence. + +**Example input** +10 +30 +0 + +**Example output** +20.0 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/095-Average of sequence/app.py b/exercises/095-Average of sequence/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/095-Average of sequence/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/096-Maximum of sequence/README.md b/exercises/096-Maximum of sequence/README.md new file mode 100644 index 00000000..7a22661e --- /dev/null +++ b/exercises/096-Maximum of sequence/README.md @@ -0,0 +1,23 @@ + # `96` Maximum of sequence + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the maximum of the sequence. + +**Example input** +1 +2 +3 +2 +1 +0 + +**Example output** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/096-Maximum of sequence/app.py b/exercises/096-Maximum of sequence/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/096-Maximum of sequence/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/097-Index of maximum/README.md b/exercises/097-Index of maximum/README.md new file mode 100644 index 00000000..f80a103a --- /dev/null +++ b/exercises/097-Index of maximum/README.md @@ -0,0 +1,22 @@ + # `97` Index of maximum + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the index of the first maximum of the sequence. + +**Example input** +1 +7 +9 +5 +0 + +**Example output** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/097-Index of maximum/app.py b/exercises/097-Index of maximum/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/097-Index of maximum/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/098-Number of even elements/README.md b/exercises/098-Number of even elements/README.md new file mode 100644 index 00000000..67271cf1 --- /dev/null +++ b/exercises/098-Number of even elements/README.md @@ -0,0 +1,21 @@ + # `98` Number of even elements + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the number of even elements of the sequence. + +**Example input** +2 +1 +4 +0 + +**Example output** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/098-Number of even elements/app.py b/exercises/098-Number of even elements/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/098-Number of even elements/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/099-Greater than previous/README.md b/exercises/099-Greater than previous/README.md new file mode 100644 index 00000000..c6725595 --- /dev/null +++ b/exercises/099-Greater than previous/README.md @@ -0,0 +1,23 @@ + # `99` Greater than previous + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the number of elements of the sequence that are greater than their neighbors above. + +**Example input** +1 +2 +3 +4 +5 +0 + +**Example output** +4 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/099-Greater than previous/app.py b/exercises/099-Greater than previous/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/099-Greater than previous/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/100-Second maximum/README.md b/exercises/100-Second maximum/README.md new file mode 100644 index 00000000..fd883805 --- /dev/null +++ b/exercises/100-Second maximum/README.md @@ -0,0 +1,21 @@ + # `100` Second maximum + +## 📝 Instructions: + +Given a sequence of distinct non-negative integers, where each number is written in a separate line. The sequence ends with 0. Print the second largest element in this sequence. It is guaranteed that the sequence has at least two elements. + +**Example input** +1 +7 +9 +0 + +**Example output** +7 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/100-Second maximum/app.py b/exercises/100-Second maximum/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/100-Second maximum/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/101-Number of maxima/README.md b/exercises/101-Number of maxima/README.md new file mode 100644 index 00000000..645e6592 --- /dev/null +++ b/exercises/101-Number of maxima/README.md @@ -0,0 +1,31 @@ + # `101` Number of maxima + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Find how many elements of this sequence are equal to its largest element. + +**Example input #1** +1 +7 +9 +0 + +**Example output #1** +1 + +**Example input #2** +1 +3 +3 +1 +0 + +**Example output #2** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/101-Number of maxima/app.py b/exercises/101-Number of maxima/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/101-Number of maxima/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/102-Widest fragment/README.md b/exercises/102-Widest fragment/README.md new file mode 100644 index 00000000..f8cf91ae --- /dev/null +++ b/exercises/102-Widest fragment/README.md @@ -0,0 +1,23 @@ + # `102` Widest fragment + +## 📝 Instructions: + +Given a sequence of non-negative integers, where each number is written in a separate line. The sequence ends with 0. Determine the length of the widest fragment where all the elements are equal to each other. + +**Example input** +1 +7 +7 +9 +1 +0 + +**Example output** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/102-Widest fragment/app.py b/exercises/102-Widest fragment/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/102-Widest fragment/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/103-Fibonacci numbers/README.md b/exercises/103-Fibonacci numbers/README.md new file mode 100644 index 00000000..8c682b57 --- /dev/null +++ b/exercises/103-Fibonacci numbers/README.md @@ -0,0 +1,22 @@ + # `103` Fibonacci numbers + +## 📝 Instructions: + +Fibonacci numbers are the numbers in the integer sequence starting with 1, 1 where every number after the first two is the sum of the two preceding ones: + +1, 1, 2, 3, 5, 8, 13, 21, 34, ... + +Given a positive integer n, print the nth Fibonacci number. + +**Example input** +6 + +**Example output** +8 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/103-Fibonacci numbers/app.py b/exercises/103-Fibonacci numbers/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/103-Fibonacci numbers/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/104-Fibonacci index/README.md b/exercises/104-Fibonacci index/README.md new file mode 100644 index 00000000..fc73db0e --- /dev/null +++ b/exercises/104-Fibonacci index/README.md @@ -0,0 +1,22 @@ + # `104` Fibonacci index + +## 📝 Instructions: + +Fibonacci numbers are the numbers in the integer sequence starting with 1, 1 where every number after the first two is the sum of the two preceding ones: + +1, 1, 2, 3, 5, 8, 13, 21, 34, ... + +Given a positive integer, determine if it's the nth Fibonacci number for some n. If it is, print such n, otherwise print -1. + +**Example input** +8 + +**Example output**a +6 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/while_loop/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/while_loop/steps/1/ \ No newline at end of file diff --git a/exercises/104-Fibonacci index/app.py b/exercises/104-Fibonacci index/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/104-Fibonacci index/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/105-Even indices/README.md b/exercises/105-Even indices/README.md new file mode 100644 index 00000000..544d1c2d --- /dev/null +++ b/exercises/105-Even indices/README.md @@ -0,0 +1,18 @@ + # `105` Even indices + +## 📝 Instructions: + +Given a list of numbers, find and print all its elements with even indices (i.e. A[0], A[2], A[4], ...). + +**Example input** +5 6 7 8 9 + +**Example output** +5 7 9 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/105-Even indices/app.py b/exercises/105-Even indices/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/105-Even indices/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/106-Even elements/README.md b/exercises/106-Even elements/README.md new file mode 100644 index 00000000..98dd4d35 --- /dev/null +++ b/exercises/106-Even elements/README.md @@ -0,0 +1,18 @@ + # `106` Even elements + +## 📝 Instructions: + +Given a list of numbers, print all its even elements. Use a for-loop that iterates over the list itself and not over its indices. That is, don't use range() + +**Example input** +1 2 2 3 3 3 4 + +**Example output** +2 2 4 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/106-Even elements/app.py b/exercises/106-Even elements/app.py new file mode 100644 index 00000000..d3cf4f97 --- /dev/null +++ b/exercises/106-Even elements/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/107-Greater than left neighbor/README.md b/exercises/107-Greater than left neighbor/README.md new file mode 100644 index 00000000..a18f8f4e --- /dev/null +++ b/exercises/107-Greater than left neighbor/README.md @@ -0,0 +1,18 @@ + # `107` Greater than left neighbor + +## 📝 Instructions: + +Given a list of numbers, find and print all its elements that are greater than their left neighbor. + +**Example input** +1 5 2 4 3 + +**Example output** +5 4 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/107-Greater than left neighbor/app.py b/exercises/107-Greater than left neighbor/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/107-Greater than left neighbor/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/108-Same sign neighbors/README.md b/exercises/108-Same sign neighbors/README.md new file mode 100644 index 00000000..93991b97 --- /dev/null +++ b/exercises/108-Same sign neighbors/README.md @@ -0,0 +1,24 @@ + # `108` Same sign neighbors + +## 📝 Instructions: + +Given a list of non-zero integers, find and print the first adjacent pair of elements that have the same sign. If there is no such pair, print 0. + +**Example input #1** +-1 2 3 -1 -2 + +**Example output #1** +2 3 + +**Example input #2** +1 -3 4 -2 1 + +**Example output #2** +0 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/108-Same sign neighbors/app.py b/exercises/108-Same sign neighbors/app.py new file mode 100644 index 00000000..d3cf4f97 --- /dev/null +++ b/exercises/108-Same sign neighbors/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/109-Greater than neighbors/README.md b/exercises/109-Greater than neighbors/README.md new file mode 100644 index 00000000..9da58439 --- /dev/null +++ b/exercises/109-Greater than neighbors/README.md @@ -0,0 +1,20 @@ + # `109` Greater than neighbors + +## 📝 Instructions: + +Given a list of numbers, determine and print the number of elements that are greater than both of their neighbors. + +The first and the last items of the list shouldn't be considered because they don't have two neighbors. + +**Example input** +1 5 1 5 1 + +**Example output** +2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/109-Greater than neighbors/app.py b/exercises/109-Greater than neighbors/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/109-Greater than neighbors/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/110-Number of distinct elements/README.md b/exercises/110-Number of distinct elements/README.md new file mode 100644 index 00000000..6bdcf1c9 --- /dev/null +++ b/exercises/110-Number of distinct elements/README.md @@ -0,0 +1,18 @@ + # `110` Number of distinct elements + +## 📝 Instructions: + +Given a list of numbers with all elements sorted in ascending order, determine and print the number of distinct elements in it. + +**Example input** +1 2 2 3 3 3 + +**Example output** +3 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/110-Number of distinct elements/app.py b/exercises/110-Number of distinct elements/app.py new file mode 100644 index 00000000..d3cf4f97 --- /dev/null +++ b/exercises/110-Number of distinct elements/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/111-Swap neighbors/README.md b/exercises/111-Swap neighbors/README.md new file mode 100644 index 00000000..131f8493 --- /dev/null +++ b/exercises/111-Swap neighbors/README.md @@ -0,0 +1,18 @@ + # `111` Swap neighbors + +## 📝 Instructions: + +Given a list of numbers, swap adjacent elements in each pair (swap A[0] with A[1], A[2] with A[3], etc.). Print the resulting list. If a list has an odd number of elements, leave the last element intact. + +**Example input** +1 2 3 4 5 + +**Example output** +2 1 4 3 5 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/111-Swap neighbors/app.py b/exercises/111-Swap neighbors/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/111-Swap neighbors/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/112-Maximum/README.md b/exercises/112-Maximum/README.md new file mode 100644 index 00000000..98f4f687 --- /dev/null +++ b/exercises/112-Maximum/README.md @@ -0,0 +1,18 @@ + # `112` Maximum + +## 📝 Instructions: + +Given a list of integers, find the first maximum element in it. Print its value and its index (counting with 0). + +**Example input** +1 2 3 2 1 + +**Example output** +3 2 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/112-Maximum/app.py b/exercises/112-Maximum/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/112-Maximum/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/113-Swap min and max/README.md b/exercises/113-Swap min and max/README.md new file mode 100644 index 00000000..1ad7fac2 --- /dev/null +++ b/exercises/113-Swap min and max/README.md @@ -0,0 +1,18 @@ + # `113` Swap min and max + +## 📝 Instructions: + +Given a list of distinct numbers, swap the minimum and the maximum and print the resulting list. + +**Example input** +3 4 5 2 1 + +**aExample output** +3 4 1 2 5 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/113-Swap min and max/app.py b/exercises/113-Swap min and max/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/113-Swap min and max/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/114-Pairs of equal numbers/README.md b/exercises/114-Pairs of equal numbers/README.md new file mode 100644 index 00000000..fd0f8bd7 --- /dev/null +++ b/exercises/114-Pairs of equal numbers/README.md @@ -0,0 +1,24 @@ + # `114` Pairs of equal numbers + +## 📝 Instructions: + +Given a list of numbers, count a number of pairs of equal elements. Any two elements that are equal to each other should be counted exactly once. + +**Example input #1** +1 2 3 2 3 + +**Example output #1** +2 + +**Example input #2** +1 1 1 1 1 + +**Example output #2** +10 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/114-Pairs of equal numbers/app.py b/exercises/114-Pairs of equal numbers/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/114-Pairs of equal numbers/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/115-Unique elements/README.md b/exercises/115-Unique elements/README.md new file mode 100644 index 00000000..6365e2cb --- /dev/null +++ b/exercises/115-Unique elements/README.md @@ -0,0 +1,18 @@ + # `115` Unique elements + +## 📝 Instructions: + +Given a list of numbers, find and print the elements that appear in it only once. Such elements should be printed in the order in which they occur in the original list. + +**Example input** +4 3 5 2 5 1 3 5 + +**Example output** +4 2 1 + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/115-Unique elements/app.py b/exercises/115-Unique elements/app.py new file mode 100644 index 00000000..d3cf4f97 --- /dev/null +++ b/exercises/115-Unique elements/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/116-Eight queens/Eight queen.jpg b/exercises/116-Eight queens/Eight queen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..faf68fa0381ed0fce944705c685c158a97680fb4 GIT binary patch literal 47101 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 literal 0 HcmV?d00001 diff --git a/exercises/116-Eight queens/README.md b/exercises/116-Eight queens/README.md new file mode 100644 index 00000000..826c09c4 --- /dev/null +++ b/exercises/116-Eight queens/README.md @@ -0,0 +1,31 @@ + # `116` Eight queens + +## 📝 Instructions: + +It is possible to place 8 queens on an 8×8 chessboard so that no two queens threaten each other. Thus, it requires that no two queens share the same row, column, or diagonal. + +Given a placement of 8 queens on the chessboard. If there is a pair of queens that violates this rule, print YES, otherwise print NO. The input consists of eight coordinate pairs, one pair per line, with each pair giving the position of a queen on a standard chessboard with rows and columns numbered from 1 to 8. + +Image + + +**Example input** +1 5 +2 3 +3 1 +4 7 +5 2 +6 8 +7 6 +8 4 +(shown on the picture) + +**Example output** +NO + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/116-Eight queens/app.py b/exercises/116-Eight queens/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/116-Eight queens/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/117-Bowling/README.md b/exercises/117-Bowling/README.md new file mode 100644 index 00000000..136e5348 --- /dev/null +++ b/exercises/117-Bowling/README.md @@ -0,0 +1,23 @@ + # `117` Bowling + +## 📝 Instructions: + +In bowling, the player starts with 10 pins in a row at the far end of a lane. The goal is to knock all the pins down. For this assignment, the number of pins and balls will vary. Given the number of pins N and then the number of balls K to be rolled, followed by K pairs of numbers (one for each ball rolled), determine which pins remain standing after all the balls have been rolled. + +The balls are numbered from 1 to N for this situation. The subsequent number pairs, one for each K represent the first and last (inclusive) positions of the pins that were knocked down with each roll. Print a sequence of N characters, where "I" represents a pin left standing and "." represents a pin knocked down. + +**Example input** +10 3 +8 10 +2 5 +3 6 + +**Example output** +I.....I... + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/lists/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/lists/steps/1/ \ No newline at end of file diff --git a/exercises/117-Bowling/app.py b/exercises/117-Bowling/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/117-Bowling/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/118-Scale/README.md b/exercises/118-Scale/README.md new file mode 100644 index 00000000..0d0d2c62 --- /dev/null +++ b/exercises/118-Scale/README.md @@ -0,0 +1,24 @@ + # `118` Scale + +## 📝 Instructions: + +Given two integers - the number of rows m and columns n of m×n 2d list - and subsequent m rows of n integers, followed by one integer c. Multiply every element by c and print the result. + +**Example input** +3 4 +11 12 13 14 +21 22 23 24 +31 32 33 34 +2 + +**Example output** +22 24 26 28 +42 44 46 48 +62 64 66 68 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/118-Scale/app.py b/exercises/118-Scale/app.py new file mode 100644 index 00000000..bae8ff65 --- /dev/null +++ b/exercises/118-Scale/app.py @@ -0,0 +1,4 @@ +# Read a 2D list of integers: +# a = [[int(j) for j in input().split()] for i in range(NUM_ROWS)] +# Print a value: +# print(a) diff --git a/exercises/119-lists_Maximum/README.md b/exercises/119-lists_Maximum/README.md new file mode 100644 index 00000000..489f029c --- /dev/null +++ b/exercises/119-lists_Maximum/README.md @@ -0,0 +1,22 @@ + # `119` lists: Maximum + +## 📝 Instructions: + +Given two integers - the number of rows m and columns n of m×n 2d list - and subsequent m rows of n integers, find the maximal element and print its row number and column number. If there are many maximal elements in different rows, report the one with smaller row number. If there are many maximal elements in the same row, report the one with smaller column number. + +**Example input** +3 4 +0 3 2 4 +2 3 5 5 +5 1 2 3 +(maximal element is highlighted) + +**Example output** +1 2 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/119-lists_Maximum/app.py b/exercises/119-lists_Maximum/app.py new file mode 100644 index 00000000..bae8ff65 --- /dev/null +++ b/exercises/119-lists_Maximum/app.py @@ -0,0 +1,4 @@ +# Read a 2D list of integers: +# a = [[int(j) for j in input().split()] for i in range(NUM_ROWS)] +# Print a value: +# print(a) diff --git a/exercises/120-Diagonals/README.md b/exercises/120-Diagonals/README.md new file mode 100644 index 00000000..0734b6e7 --- /dev/null +++ b/exercises/120-Diagonals/README.md @@ -0,0 +1,27 @@ + # `120` Diagonals + +## 📝 Instructions: + +Given an integer n, create a two-dimensional array of size n×n according to the following rules and print it: + +On the main diagonal put 0. +On the diagonals adjacent to the main put 1. +On the next adjacent diagonals put 2, and so forth. + +**Example input** +5 + + +**Example output** +0 1 2 3 4 +1 0 1 2 3 +2 1 0 1 2 +3 2 1 0 1 +4 3 2 1 0 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/120-Diagonals/app.py b/exercises/120-Diagonals/app.py new file mode 100644 index 00000000..be75a369 --- /dev/null +++ b/exercises/120-Diagonals/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) \ No newline at end of file diff --git a/exercises/121-Triangles/README.md b/exercises/121-Triangles/README.md new file mode 100644 index 00000000..68e35872 --- /dev/null +++ b/exercises/121-Triangles/README.md @@ -0,0 +1,25 @@ + # `121` Triangles + +## 📝 Instructions: + +Given an integer n, create a two-dimensional array of size n×n according to the following rules and print it: + +On the antidiagonal put 1. +On the diagonals above it put 0. +On the diagonals below it put 2. + +**Example input** +4 + +**Example output** +0 0 0 1 +0 0 1 2 +0 1 2 2 +1 2 2 2 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/121-Triangles/app.py b/exercises/121-Triangles/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/121-Triangles/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/122-Swap columns/README.md b/exercises/122-Swap columns/README.md new file mode 100644 index 00000000..48cf8b2c --- /dev/null +++ b/exercises/122-Swap columns/README.md @@ -0,0 +1,24 @@ + # `122` Swap columns + +## 📝 Instructions: + +Given two integers - the number of rows m and columns n of m×n 2d list - and subsequent m rows of n integers, followed by two non-negative integers i and j less than n, swap the columns i and j of 2d list and print the result. + +**Example input** +3 4 +11 12 13 14 +21 22 23 24 +31 32 33 34 +0 1 + +**Example output** +12 11 13 14 +22 21 23 24 +32 31 33 34 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/122-Swap columns/app.py b/exercises/122-Swap columns/app.py new file mode 100644 index 00000000..bae8ff65 --- /dev/null +++ b/exercises/122-Swap columns/app.py @@ -0,0 +1,4 @@ +# Read a 2D list of integers: +# a = [[int(j) for j in input().split()] for i in range(NUM_ROWS)] +# Print a value: +# print(a) diff --git a/exercises/123-Snowflake/README.md b/exercises/123-Snowflake/README.md new file mode 100644 index 00000000..b92a53a3 --- /dev/null +++ b/exercises/123-Snowflake/README.md @@ -0,0 +1,24 @@ + # `123` Snowflake + +## 📝 Instructions: + +Given an odd positive integer n, produce a two-dimensional array of size n×n. Fill each element with the character "." . Then fill the middle row, the middle column and the diagonals with the character "*". You'll get an image of a snow flake. Print the snow flake in n×n rows and columns and separate the characters with a single space. + +**Example input** +7 + +**Example output** +* . . * . . * +. * . * . * . +. . * * * . . +* * * * * * * +. . * * * . . +. * . * . * . +* . . * . . * + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/123-Snowflake/app.py b/exercises/123-Snowflake/app.py new file mode 100644 index 00000000..710c4406 --- /dev/null +++ b/exercises/123-Snowflake/app.py @@ -0,0 +1,4 @@ +# Read an integer: +# a = int(input()) +# Print a value: +# print(a) diff --git a/exercises/124-Chessboard/README.md b/exercises/124-Chessboard/README.md new file mode 100644 index 00000000..769ac305 --- /dev/null +++ b/exercises/124-Chessboard/README.md @@ -0,0 +1,23 @@ + # `124` Chessboard + +## 📝 Instructions: + +Given two positive integers n and m, create a two-dimensional array of size n×m and populate it with the characters "."and "*" in a chequered pattern. The top left corner should have the character "." . + +**Example input** +6 8 + +**Example output** +. * . * . * . * +* . * . * . * . +. * . * . * . * +* . * . * . * . +. * . * . * . * +* . * . * . * . + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/two_dimensional_lists_arrays/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/two_dimensional_lists_arrays/steps/1/ \ No newline at end of file diff --git a/exercises/124-Chessboard/app.py b/exercises/124-Chessboard/app.py new file mode 100644 index 00000000..7bbd8710 --- /dev/null +++ b/exercises/124-Chessboard/app.py @@ -0,0 +1,4 @@ +# Read a list of integers: +# a = [int(s) for s in input().split()] +# Print a value: +# print(a) diff --git a/exercises/125-Number of distinct/README.md b/exercises/125-Number of distinct/README.md new file mode 100644 index 00000000..d128db81 --- /dev/null +++ b/exercises/125-Number of distinct/README.md @@ -0,0 +1,15 @@ + # `125` Number of distinct + +## 📝 Instructions: + +Given a list of integers, count how many distinct numbers it has. This task can be solved in a single line. + +**Example input** +1 2 3 2 1 + +**Example output** +3 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/sets/ \ No newline at end of file diff --git a/exercises/125-Number of distinct/app.py b/exercises/125-Number of distinct/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/125-Number of distinct/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) diff --git a/exercises/126-Number of common/README.md b/exercises/126-Number of common/README.md new file mode 100644 index 00000000..3f422188 --- /dev/null +++ b/exercises/126-Number of common/README.md @@ -0,0 +1,16 @@ + # `126` Number of common + +## 📝 Instructions: + +Given two lists of numbers, count how many numbers of the first one occur in the second one. + +**Example input** +1 3 2 +4 3 2 + +**Example output** +2 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/sets/ \ No newline at end of file diff --git a/exercises/126-Number of common/app.py b/exercises/126-Number of common/app.py new file mode 100644 index 00000000..12a4dcdc --- /dev/null +++ b/exercises/126-Number of common/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) \ No newline at end of file diff --git a/exercises/127-Intersection/README.md b/exercises/127-Intersection/README.md new file mode 100644 index 00000000..03ff892b --- /dev/null +++ b/exercises/127-Intersection/README.md @@ -0,0 +1,16 @@ + # `127` Intersection + +## 📝 Instructions: + +Given two lists of numbers, find all the numbers that occur in both the first and the second list. Print them in ascending order. + +**Example input** +1 3 2 +4 3 2 + +**Example output** +2 3 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/sets/ \ No newline at end of file diff --git a/exercises/127-Intersection/app.py b/exercises/127-Intersection/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/127-Intersection/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) diff --git a/exercises/128-Seen before/README.md b/exercises/128-Seen before/README.md new file mode 100644 index 00000000..37b46963 --- /dev/null +++ b/exercises/128-Seen before/README.md @@ -0,0 +1,20 @@ + # `128` Seen before + +## 📝 Instructions: + +Given a sequence of numbers, scan them from left to right and for each number print YES if this number was already seen or NO if it appears for the first time. + +**Example input** +1 2 3 2 3 4 + +**Example output** +NO +NO +NO +YES +YES +NO + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/sets/ \ No newline at end of file diff --git a/exercises/128-Seen before/app.py b/exercises/128-Seen before/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/128-Seen before/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) diff --git a/exercises/129-Guess the number/README.md b/exercises/129-Guess the number/README.md new file mode 100644 index 00000000..2b15491c --- /dev/null +++ b/exercises/129-Guess the number/README.md @@ -0,0 +1,22 @@ + # `129` Guess the number + +## 📝 Instructions: + +Augustus and Beatrice play the following game. Augustus thinks of a secret integer number from 1 to n. Beatrice tries to guess the number by providing a set of integers. Augustus answers YES if his secret number exists in the provided set, or NO, if his number does not exist in the provided set. Then after a few questions Beatrice, totally confused, asks you to help her determine Augustus's secret number. + +Given the positive integer n in the first line, followed by the a sequence Beatrice's guesses, series of numbers seperated by spaces and Agustus's responses, or Beatrice's plea for HELP. When Beatrice calls for help, provide a list of all the remaining possible secret numbers, in ascending order, separated by a space. + +**Example input** +10 +1 2 3 4 5 +YES +2 4 6 8 10 +NO +HELP + +**Example output** +1 3 5 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/sets/ \ No newline at end of file diff --git a/exercises/129-Guess the number/app.py b/exercises/129-Guess the number/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/129-Guess the number/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) diff --git a/exercises/130-Number of occurrences/README.md b/exercises/130-Number of occurrences/README.md new file mode 100644 index 00000000..a8064157 --- /dev/null +++ b/exercises/130-Number of occurrences/README.md @@ -0,0 +1,15 @@ + # `130` Number of occurrences + +## 📝 Instructions: + +The text is given in a single line. For each word of the text count the number of its occurrences before it. + +**Example input** +one two one two three two four three + +**Example output** +0 0 1 1 0 2 0 1 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/130-Number of occurrences/app.py b/exercises/130-Number of occurrences/app.py new file mode 100644 index 00000000..12a4dcdc --- /dev/null +++ b/exercises/130-Number of occurrences/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) \ No newline at end of file diff --git a/exercises/131-Synonyms/README.md b/exercises/131-Synonyms/README.md new file mode 100644 index 00000000..a359c5c8 --- /dev/null +++ b/exercises/131-Synonyms/README.md @@ -0,0 +1,21 @@ + # `131` Synonyms + +## 📝 Instructions: + +You are given a dictionary consisting of word pairs. Every word is a synonym of the other word in its pair. All the words in the dictionary are different. + +After the dictionary there's one more word given. Find a synonym for it. + +**Example input** +3 +Hello Hi +Bye Goodbye +List Array +Goodbye + +**Example output** +Bye + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/131-Synonyms/app.py b/exercises/131-Synonyms/app.py new file mode 100644 index 00000000..12a4dcdc --- /dev/null +++ b/exercises/131-Synonyms/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) \ No newline at end of file diff --git a/exercises/132-Elections/README.md b/exercises/132-Elections/README.md new file mode 100644 index 00000000..75e53c99 --- /dev/null +++ b/exercises/132-Elections/README.md @@ -0,0 +1,21 @@ + # `132` Elections + +## 📝 Instructions: + +The first line contains the number of records. After that, each entry contains the name of the candidate and the number of votes they got in some state. Count the results of the elections: sum the number of votes for each candidate. Print candidates in the alphabetical order. + +**Example input** +5 +McCain 10 +McCain 5 +Obama 9 +Obama 8 +McCain 1 + +**Example output** +McCain 16 +Obama 17 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/132-Elections/app.py b/exercises/132-Elections/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/132-Elections/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) diff --git a/exercises/133-Most frequent word/README.md b/exercises/133-Most frequent word/README.md new file mode 100644 index 00000000..d2e1b122 --- /dev/null +++ b/exercises/133-Most frequent word/README.md @@ -0,0 +1,17 @@ + # `133` Most frequent word + +## 📝 Instructions: + +Given the text: the first line contains the number of lines, then given the lines of words. Print the word in the text that occurs most often. If there are many such words, print the one that is less in the alphabetical order. + +**Example input** +2 +apple orange banana +banana orange + +**Example output** +banana + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/133-Most frequent word/app.py b/exercises/133-Most frequent word/app.py new file mode 100644 index 00000000..12a4dcdc --- /dev/null +++ b/exercises/133-Most frequent word/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) \ No newline at end of file diff --git a/exercises/134-Access rights/README.md b/exercises/134-Access rights/README.md new file mode 100644 index 00000000..20f2e90e --- /dev/null +++ b/exercises/134-Access rights/README.md @@ -0,0 +1,37 @@ + # `134` Access rights + +## 📝 Instructions: + +The virus attacked the filesystem of the supercomputer and broke the control of access rights to the files. For each file there is a known set of operations which may be applied to it: + +write W, +read R, +execute X. + +The first line contains the number N — the number of files contained in the filesystem. The following N lines contain the file names and allowed operations with them, separated by spaces. The next line contains an integer M — the number of operations to the files. In the last M lines specify the operations that are requested for files. One file can be requested many times. + +You need to recover the control over the access rights to the files. For each request your program should return OK if the requested operation is valid or Access denied if the operation is invalid. + +**Example input** +4 +helloworld.exe R X +pinglog W R +nya R +goodluck X W R +5 +read nya +write helloworld.exe +execute nya +read pinglog +write pinglog + +**Example output** +OK +Access denied +Access denied +OK +OK + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/134-Access rights/app.py b/exercises/134-Access rights/app.py new file mode 100644 index 00000000..12a4dcdc --- /dev/null +++ b/exercises/134-Access rights/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) \ No newline at end of file diff --git a/exercises/135-Countries and cities/README.md b/exercises/135-Countries and cities/README.md new file mode 100644 index 00000000..79799c25 --- /dev/null +++ b/exercises/135-Countries and cities/README.md @@ -0,0 +1,23 @@ + # `135` Countries and cities + +## 📝 Instructions: + +Given a list of countries and cities of each country, then given the names of the cities. For each city print the country in which it is located. + +**Example input** +2 +USA Boston Pittsburgh Washington Seattle +UK London Edinburgh Cardiff Belfast +3 +Cardiff +Seattle +London + +**Example output** +UK +USA +UK + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/135-Countries and cities/app.py b/exercises/135-Countries and cities/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/135-Countries and cities/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) diff --git a/exercises/136-Frequency analysis/README.md b/exercises/136-Frequency analysis/README.md new file mode 100644 index 00000000..b1d464e8 --- /dev/null +++ b/exercises/136-Frequency analysis/README.md @@ -0,0 +1,37 @@ + # `136` Frequency analysis + +## 📝 Instructions: + +Given a number n, followed by n lines of text, print all words encountered in the text, one per line, with their number of occurrences in the text. The words should be sorted in descending order according to their number of occurrences, and all words within the same frequency should be printed in lexicographical order. + +Hint. After you created a dictionary of the words and their frequencies, you would like to sort it according to the frequencies. This can be achieved if you create a list whose elements are lists of two elements: the number of occurrences of a word and the word itself. For example, [[2, 'hi'], [1, 'what'], [3, 'is']]. Then the standard list sort will sort a list of lists, with the lists compared by the first element, and if these are equal, by the second element. This is nearly what is required. + +**Example input** +9 +hi +hi +what is your name +my name is bond +james bond +my name is damme +van damme +claude van damme +jean claude van damme + +**Example output** +damme 4 +is 3 +name 3 +van 3 +bond 2 +claude 2 +hi 2 +my 2 +james 1 +jean 1 +what 1 +your 1 + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/136-Frequency analysis/app.py b/exercises/136-Frequency analysis/app.py new file mode 100644 index 00000000..12a4dcdc --- /dev/null +++ b/exercises/136-Frequency analysis/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) \ No newline at end of file diff --git a/exercises/137-English-Latin dictionary/README.md b/exercises/137-English-Latin dictionary/README.md new file mode 100644 index 00000000..0b0cfbd3 --- /dev/null +++ b/exercises/137-English-Latin dictionary/README.md @@ -0,0 +1,35 @@ + # `137` English-Latin dictionary + +## 📝 Instructions: + +One day, going through old books in the attic, a student Bob found an English-Latin dictionary. By that time he spoke English fluently, and his dream was to learn Latin. So finding the dictionary was just in time. + +Unfortunately, full-fledged language studying process requires also another type of dictionary: Latin-English. For lack of a better way he decided to make a second dictionary using the first one. + +As you know, the dictionary consists of words, each of which contains multiple translations. For each Latin word that appears anywhere in the dictionary, Bob has to find all its translations (that is, all English words, for which our Latin word is among its translations), and take them and only them as the translations of this Latin word. + +Help him to create a Latin-English. + +The first line contains a single integer N — the number of English words in the dictionary - followed by N dictionary entries. Each entry is contained on a separate line, which contains first the English word, then a hyphen surrounded by spaces and then comma-separated list with the translations of this English word in Latin. All the words consist only of lowercase English letters. The translations are sorted in lexicographical order. The order of English words in the dictionary is also lexicographic. + +Print the corresponding Latin-English dictionary in the same format. In particular, the first word line should be the lexicographically minimal translation of the Latin word, then second in that order, etc. The English words inside each line should also be sorted lexicographically. + +**Example input** +3 +apple - malum, pomum, popula +fruit - baca, bacca, popum +punishment - malum, multa + +**Example output** +7 +baca - fruit +bacca - fruit +malum - apple, punishment +multa - punishment +pomum - apple +popula - apple +popum - fruit + +**Theory** +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/dictionaries_dicts/ \ No newline at end of file diff --git a/exercises/137-English-Latin dictionary/app.py b/exercises/137-English-Latin dictionary/app.py new file mode 100644 index 00000000..9e046f0e --- /dev/null +++ b/exercises/137-English-Latin dictionary/app.py @@ -0,0 +1,4 @@ +# Read a string: +# s = input() +# Print a value: +# print(s) From 072d62e4a4fe323b8757fff65625dd8fbc77d810 Mon Sep 17 00:00:00 2001 From: Elvira Quiroz Date: Wed, 28 Apr 2021 20:37:40 +0000 Subject: [PATCH 2/3] exercises translated 55-62 --- exercises/054-Order of outlier/README.es.md | 19 ++++++------ exercises/054-Order of outlier/README.md | 2 +- exercises/055-Rook move/README.es.md | 24 +++++++++++++++ exercises/055-Rook move/README.md | 2 +- .../README.es.md | 29 +++++++++++++++++++ .../056-Chessboard - black square/README.md | 2 +- .../057-Chessboard - same color/README.es.md | 24 +++++++++++++++ exercises/058-King move/README.es.md | 25 ++++++++++++++++ exercises/059-Bishop move/README.es.md | 24 +++++++++++++++ exercises/060-Queen move/README.es.md | 27 +++++++++++++++++ exercises/061-Knight move/README.es.md | 26 +++++++++++++++++ exercises/062-Leap year/README_copy.md | 25 ++++++++++++++++ 12 files changed, 217 insertions(+), 12 deletions(-) create mode 100644 exercises/055-Rook move/README.es.md create mode 100644 exercises/056-Chessboard - black square/README.es.md create mode 100644 exercises/057-Chessboard - same color/README.es.md create mode 100644 exercises/058-King move/README.es.md create mode 100644 exercises/059-Bishop move/README.es.md create mode 100644 exercises/060-Queen move/README.es.md create mode 100644 exercises/061-Knight move/README.es.md create mode 100644 exercises/062-Leap year/README_copy.md diff --git a/exercises/054-Order of outlier/README.es.md b/exercises/054-Order of outlier/README.es.md index 90b33628..b8422100 100644 --- a/exercises/054-Order of outlier/README.es.md +++ b/exercises/054-Order of outlier/README.es.md @@ -1,27 +1,28 @@ -# `54` Order of outlier +# `54` Posición del número diferente -## 📝 Instructions: +## 📝 Instrucciones: -Given three integers, in which two are equal to each other and the third one is different. Print the order number of this different one - 1, 2 or 3. +Dado tres números enteros, de los cuales dos son iguales y el tercero es diferente, imprime la posición del número que es diferente - 1, 2 o 3 -**Example input #1** +**Ejemplo de entrada #1** 10 5 10 -**Example output #1** +**Ejemplo de salida #1** 2 -**Example input #2** +**Ejemplo de entrada #2** 10 10 5 -**Example output #2** +**Ejemplo de salida #2** 3 -Theory -If you don't know how to start solving this assignment, please, review a theory for this lesson: +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: https://snakify.org/lessons/if_then_else_conditions/ You may also try step-by-step theory chunks: diff --git a/exercises/054-Order of outlier/README.md b/exercises/054-Order of outlier/README.md index 90b33628..5b8598a8 100644 --- a/exercises/054-Order of outlier/README.md +++ b/exercises/054-Order of outlier/README.md @@ -2,7 +2,7 @@ ## 📝 Instructions: -Given three integers, in which two are equal to each other and the third one is different. Print the order number of this different one - 1, 2 or 3. +Given three integers, in which two are equal to each other and the third one is different. Print the position of this different one - 1, 2 or 3. **Example input #1** 10 diff --git a/exercises/055-Rook move/README.es.md b/exercises/055-Rook move/README.es.md new file mode 100644 index 00000000..e21b93f1 --- /dev/null +++ b/exercises/055-Rook move/README.es.md @@ -0,0 +1,24 @@ +# `55` Rook move + +## 📝 Instrucciones: + +En el ajedrez la torre se mueve horizontalmente o verticalmente. Dado dos cuadrados de un tablero de ejedrez, determina si la torre puede ir desde el primer cuadrado al segundo en una sola jugada. + +El programa recibe 4 números del 1 al 8 cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado (ve la imagen). La salida del programa debiera ser YES si la torre puede ir del primero cuadrado al segundo en una sola jugada, de lo contrario debe ser NO. + +**Ejemplo de entrada** +4 +4 +5 +5 + +**Ejemplo de salida** +NO + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ diff --git a/exercises/055-Rook move/README.md b/exercises/055-Rook move/README.md index cd7915b9..73cac02c 100644 --- a/exercises/055-Rook move/README.md +++ b/exercises/055-Rook move/README.md @@ -4,7 +4,7 @@ Chess rook moves horizontally or vertically. Given two different squares of the chessboard, determine whether a rook can go from the first square to the second one in a single move. -The program receives four numbers from 1 to 8 each specifying the column and the row number, first two - for the first square, and the last two - for the second square. The program should output YES if a rook can go from the first square to the second one in a single move or NO otherwise. +The program receives four numbers from 1 to 8 each specifying the column and the row number, first two - for the first square, and the last two - for the second square (check the image). The program should output YES if a rook can go from the first square to the second one in a single move or NO otherwise. diff --git a/exercises/056-Chessboard - black square/README.es.md b/exercises/056-Chessboard - black square/README.es.md new file mode 100644 index 00000000..0dcc8f58 --- /dev/null +++ b/exercises/056-Chessboard - black square/README.es.md @@ -0,0 +1,29 @@ +# `56` Tablero de ajedrez - cuadrado negro + +## 📝 Instrucciones: + +Dado un cuadrado de un tablero de ajedrez. Si es negro imprime YES, de lo contrario imprime NO. + +Este programa recibe dos números enteros del 1 al 8 cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado (ve la imagen). + +**Ejemplo de entrada #1** +1 +1 + +**Ejemplo de salida#1** +YES + +**Ejemplo de entrada #2** +1 +2 + +**Ejemplo de salida #2** +NO + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/056-Chessboard - black square/README.md b/exercises/056-Chessboard - black square/README.md index 52e3234c..d0fa1bac 100644 --- a/exercises/056-Chessboard - black square/README.md +++ b/exercises/056-Chessboard - black square/README.md @@ -4,7 +4,7 @@ Given a square of a chessboard. If it's a black square, print YES, otherwise print NO. -The program receives two integers from 1 to 8 specifying the column and row number of the square. +The program receives two integers from 1 to 8 first two - for the first square, and the last two - for the second square(check the image). diff --git a/exercises/057-Chessboard - same color/README.es.md b/exercises/057-Chessboard - same color/README.es.md new file mode 100644 index 00000000..593d1b1c --- /dev/null +++ b/exercises/057-Chessboard - same color/README.es.md @@ -0,0 +1,24 @@ +# `57` Tablero de ajedrez - mismo color + +## 📝 Instrucciones: + +Dado dos cuadradoa de un tablero de ajedrez, si son del mismo color imprime YES, de lo contrario imprime NO. + +El programa recibe 4 números enteros del 1 al 8, cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado (ve la imagen). + +**Ejemplo de entrada** +1 +1 +2 +6 + +**Ejemplo de salida** +YES + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/058-King move/README.es.md b/exercises/058-King move/README.es.md new file mode 100644 index 00000000..a826b874 --- /dev/null +++ b/exercises/058-King move/README.es.md @@ -0,0 +1,25 @@ +# `58` Movida del rey + +## 📝 Instrucciones: + +En un tablero de ajedrez, el rey puede moverse un cuadrado a la vez en cualquiera dirección. Dado dos diferentes cuadrados de un tablero de ajedrez, determina si el rey puede moverse desde el primer cuadrado al segundo en una sola jugada. + +El programa recibe 4 números del 1 al 8 cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado. La salida del programa debe ser "YES" si el rey puede moverse desde el primer cuadrado al segundo, de lo contrario debe imprimir "NO". + + +**Ejemplo de entrada** +4 +4 +5 +5 + +**Ejemplo de salida** +YES + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ diff --git a/exercises/059-Bishop move/README.es.md b/exercises/059-Bishop move/README.es.md new file mode 100644 index 00000000..a7b0c10c --- /dev/null +++ b/exercises/059-Bishop move/README.es.md @@ -0,0 +1,24 @@ +# `59` La movida del alfil + +## 📝 Instrucciones: + +En el ajedrez, el alfil puede avanzar tantos cuadrados como quiera pero diagonalmente. Dado dos cuadrados diferentes en el ajedrez, determina si el alfil puede ir del primer al segundo cuadrado. + +El programa recibe 4 números del 1 al 8 cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado. La salida del programa debe ser "YES" si el alfil puede moverse desde el primer cuadrado al segundo, de lo contrario debe imprimir "NO" + +**Ejemplo de entrada** +4 +4 +5 +5 + +**Ejemplo de salida** +YES + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/060-Queen move/README.es.md b/exercises/060-Queen move/README.es.md new file mode 100644 index 00000000..2324b49f --- /dev/null +++ b/exercises/060-Queen move/README.es.md @@ -0,0 +1,27 @@ +# `60` La jugada de la reina + +## 📝 Instrucciones: + +En el ajedrez, la reina puede moverse horizontal, vertical o diagonalmente cuantos cuadrados quiera. Dado dos cuadrados diferentes en el ajedrez, determina si la reina puede ir del primer al segundo cuadrado. + +El programa recibe 4 números del 1 al 8 cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado. La salida del programa debe ser "YES" si la reina puede moverse desde el primer cuadrado al segundo, de lo contrario debe imprimir "NO" + + + + +**Example input** +1 +1 +2 +2 + +**Example output** +YES + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/061-Knight move/README.es.md b/exercises/061-Knight move/README.es.md new file mode 100644 index 00000000..a7cee6f3 --- /dev/null +++ b/exercises/061-Knight move/README.es.md @@ -0,0 +1,26 @@ +# `61` La jugada del caballo + +## 📝 Instrucciones: + +En el aedrez, el caballo puede moverse a un cuadrado que este dos cuadrados más alla horizontalmente y un cuadrado vertical, o a dos cuadrados verticalmente y cuadrado horizontalmente. La jugada tiene forma de L. Dado dos cuadrados diferentes en el ajedrez, determina si el caballo puede ir del primer al segundo cuadrado. + +El programa recibe 4 números del 1 al 8 cada uno especificando el número de la columna y de la fila -los dos primeros corresponden al primer cuadrado y los dos últimos corresponden al segundo cuadrado. La salida del programa debe ser "YES" si el caballo puede moverse desde el primer cuadrado al segundo, de lo contrario debe imprimir "NO". + + + +**Ejemplo de entrada** +2 +4 +3 +2 + +**Ejemplo de salida** +YES + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/062-Leap year/README_copy.md b/exercises/062-Leap year/README_copy.md new file mode 100644 index 00000000..a6acf45c --- /dev/null +++ b/exercises/062-Leap year/README_copy.md @@ -0,0 +1,25 @@ +# `62` Leap year + +## 📝 Instructions: + +Given the year number. You need to check if this year is a leap year. If it is, print LEAP, otherwise print COMMON. + +The rules in Gregorian calendar are as follows: + +a year is a leap year if its number is exactly divisible by 4 and is not exactly divisible by 100 +a year is always a leap year if its number is exactly divisible by 400 + +Warning. The words LEAP and COMMON should be printed all caps. + +**Example input** +2012 + +**Example output** +LEAP + +Theory +If you don't know how to start solving this assignment, please, review a theory for this lesson: +https://snakify.org/lessons/if_then_else_conditions/ + +You may also try step-by-step theory chunks: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file From 4a35f3eff1f3a7e49d2e317447b6c7910201f666 Mon Sep 17 00:00:00 2001 From: Elvira Quiroz Date: Fri, 30 Apr 2021 21:02:08 +0000 Subject: [PATCH 3/3] exercises translated 62-71 --- exercises/062-Leap year/README.es.md | 26 +++++++++++++ exercises/062-Leap year/README_copy.md | 25 ------------ exercises/063-Next day/README.es.md | 31 +++++++++++++++ exercises/064-Linear equation/README.es.md | 27 +++++++++++++ .../065-Minimum of five numbers/README.es.md | 23 +++++++++++ .../066-Vertices of rectangle/README.es.md | 39 +++++++++++++++++++ exercises/067-Sort three numbers/README.es.md | 23 +++++++++++ exercises/068-Series - 1/README.es.md | 21 ++++++++++ exercises/069-Series - 2/README.es.md | 21 ++++++++++ exercises/070-Sum of ten numbers/README.es.md | 28 +++++++++++++ 10 files changed, 239 insertions(+), 25 deletions(-) create mode 100644 exercises/062-Leap year/README.es.md delete mode 100644 exercises/062-Leap year/README_copy.md create mode 100644 exercises/063-Next day/README.es.md create mode 100644 exercises/064-Linear equation/README.es.md create mode 100644 exercises/065-Minimum of five numbers/README.es.md create mode 100644 exercises/066-Vertices of rectangle/README.es.md create mode 100644 exercises/067-Sort three numbers/README.es.md create mode 100644 exercises/068-Series - 1/README.es.md create mode 100644 exercises/069-Series - 2/README.es.md create mode 100644 exercises/070-Sum of ten numbers/README.es.md diff --git a/exercises/062-Leap year/README.es.md b/exercises/062-Leap year/README.es.md new file mode 100644 index 00000000..f86f9a43 --- /dev/null +++ b/exercises/062-Leap year/README.es.md @@ -0,0 +1,26 @@ +# `62` Año bisiesto + +## 📝 Instrucciones: + +Dado el número de un año, verifica si es año bisiesto o no. Si lo es imprime "LEAP", de lo contrario imprime "COMMON". + +Las reglas del calendario gregoriano son las siguientes: + +- un año es bisiesto si su número es divisible por 4 y no divisible por 100 +- un año siempre es bisiesto si es divisible por 400. + +**Nota: La palabra LEAP y COMMON deben ir en mayúscula.** + +**Ejemplo de entrada** +2012 + +**Ejemplo de salida** +LEAP + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/062-Leap year/README_copy.md b/exercises/062-Leap year/README_copy.md deleted file mode 100644 index a6acf45c..00000000 --- a/exercises/062-Leap year/README_copy.md +++ /dev/null @@ -1,25 +0,0 @@ -# `62` Leap year - -## 📝 Instructions: - -Given the year number. You need to check if this year is a leap year. If it is, print LEAP, otherwise print COMMON. - -The rules in Gregorian calendar are as follows: - -a year is a leap year if its number is exactly divisible by 4 and is not exactly divisible by 100 -a year is always a leap year if its number is exactly divisible by 400 - -Warning. The words LEAP and COMMON should be printed all caps. - -**Example input** -2012 - -**Example output** -LEAP - -Theory -If you don't know how to start solving this assignment, please, review a theory for this lesson: -https://snakify.org/lessons/if_then_else_conditions/ - -You may also try step-by-step theory chunks: -https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/063-Next day/README.es.md b/exercises/063-Next day/README.es.md new file mode 100644 index 00000000..c9abd922 --- /dev/null +++ b/exercises/063-Next day/README.es.md @@ -0,0 +1,31 @@ +# `63` Día siguiente + +## 📝 Instrucciones: + +Dado un mes (un número entero entre el 1 y el 12) y un día de él (otro número entero entre el 1 y el 31) del año 2017, imprime el mes y el día siguiente a ese. + +**Ejemplo de entrada #1** +3 +30 +(30 de marzo) + +**Ejemplo de salida #1** +3 +31 + +**Ejemplo de entrada #2** +3 +31 +(31 de marzo) + +**Ejemplo de salida #2** +4 +1 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/064-Linear equation/README.es.md b/exercises/064-Linear equation/README.es.md new file mode 100644 index 00000000..98c088e1 --- /dev/null +++ b/exercises/064-Linear equation/README.es.md @@ -0,0 +1,27 @@ +# `64` Ecuación Lineal + +## 📝 Instrucciones: + +Escribe un programa que resuelva una ecuación lineal ax = b en enteros. Dado dos enteros a y b (y quizas un cero), imprime la raíz: sólo número entero de raíz si es que existe, de lo contrario escribe "no solution" si no tienee solución o "many solutions" si tiene múltiples soluciones. + +**Ejemplo de entrada #1** +1 +-2 + +**Ejemplo de salida #1** +-2 + +**Ejemplo de entrada #2** +2 +-1 + +**Ejemplo de salida #2** +no solution + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/065-Minimum of five numbers/README.es.md b/exercises/065-Minimum of five numbers/README.es.md new file mode 100644 index 00000000..fd62ab9d --- /dev/null +++ b/exercises/065-Minimum of five numbers/README.es.md @@ -0,0 +1,23 @@ +# `65` El menor de cinco números + +## 📝 Instrucciones: + +Dado cinco números enteros, imprime el menor. + +**Ejemplo entrada** +10 +20 +30 +40 +50 + +**Ejemplo de salida** +10 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/066-Vertices of rectangle/README.es.md b/exercises/066-Vertices of rectangle/README.es.md new file mode 100644 index 00000000..6ac26113 --- /dev/null +++ b/exercises/066-Vertices of rectangle/README.es.md @@ -0,0 +1,39 @@ +# `66` Vértices de un rectángulo + +## 📝 Instrucciones: + +Dadas las coordenadas enteras de tres vértices de un rectángulo cuyos lados son paralelos a los ejes de coordenadas, encuentra las coordenadas del cuarto vértice del rectángulo. + + +**Ejemplo de entrada #1** +1 +5 +7 +5 +1 +10 +los tres vértices son (1, 5), (7, 5), (1, 10) + +**Ejemplo de salida #1** +7 +10 + +**Ejemplo de entrada #2** +1 +5 +7 +10 +1 +10 + +**Ejemplo de salida #2** +7 +5 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/067-Sort three numbers/README.es.md b/exercises/067-Sort three numbers/README.es.md new file mode 100644 index 00000000..509aaa0e --- /dev/null +++ b/exercises/067-Sort three numbers/README.es.md @@ -0,0 +1,23 @@ +# `67` Ordena tres números + +## 📝 Instrucciones: + +Dado tres enteros, imprímelos en orden ascendente. + +**Ejemplo de entrada** +5 +3 +7 + +**Ejemplo de salida** +3 +5 +7 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/if_then_else_conditions/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/if_then_else_conditions/steps/1/ \ No newline at end of file diff --git a/exercises/068-Series - 1/README.es.md b/exercises/068-Series - 1/README.es.md new file mode 100644 index 00000000..3117735c --- /dev/null +++ b/exercises/068-Series - 1/README.es.md @@ -0,0 +1,21 @@ +# `68` Series - 1 + +## 📝 Instrucciones: + +Dado dos números enteros A y (A ≤ B). Imprime todos los números de A y B (A y B inclusive). + + +**Ejemplo de entrada** +1 +10 + +**Ejemplo de salida** +1 2 3 4 5 6 7 8 9 10 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/for_loop_range/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/069-Series - 2/README.es.md b/exercises/069-Series - 2/README.es.md new file mode 100644 index 00000000..8236ed85 --- /dev/null +++ b/exercises/069-Series - 2/README.es.md @@ -0,0 +1,21 @@ +# `69` Series - 2 + +## 📝 Instrucciones: + +Dado dos números enteros A y B, imprime todos los números de A a B incluidos, en un orden ascendente, si A < B, y en orden descendente si A ≥ B. + + +**Ejemplo de entrada** +8 +5 + +**Ejemplo de salida** +8 7 6 5 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/for_loop_range/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file diff --git a/exercises/070-Sum of ten numbers/README.es.md b/exercises/070-Sum of ten numbers/README.es.md new file mode 100644 index 00000000..1b52391f --- /dev/null +++ b/exercises/070-Sum of ten numbers/README.es.md @@ -0,0 +1,28 @@ +# `70` Suma de diez números + +## 📝 Instrucciones: + +Dado 10 números de entrada; léelos e imprime su suma. Usa la menor cantidad de variables posibles. + +**Ejemplo de entrada** +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 + +**Ejemplo de entrada** +45 + +**Teoría** + +Si no sabes por donde empezar a resolver este ejercicio, por favor revisa el contenido de esta lección: +https://snakify.org/lessons/for_loop_range/ + +También puedes intentar paso a paso con trozos de la teoría: +https://snakify.org/lessons/for_loop_range/steps/1/ \ No newline at end of file