Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

‫תרגיל רקורסיה‬

‫עליכם לממש את השיטות הרקורסיביות והסטטיות הבאות במחלקה ‪:Rec‬‬

‫שאלה ‪:1‬‬
‫עליך לממש שיטה בשם ‪ factorial‬המקבלת מספר שלם ומחזירה את העצרת של מספר זה‪.‬‬
‫עצרת היא מכפלת כל המספרים הטבעיים מ ‪ 1‬ועד למספר נתון‪.‬‬
‫למשל‪ 4" ,‬עצרת" היא המכפלה‪:‬‬
‫‪1 X 2 X 3 X 4 = 24‬‬
‫לציון עצרת של המספר ‪ n‬משתמשים בסימן "!"‪ .‬כלומר‪:‬‬
‫‪n! = 1 X 2 X … X n‬‬
‫קח בחשבון כי‪:‬‬
‫‪0! = 1‬‬
‫שאלה ‪:2‬‬
‫עליך לממש שיטה בשם ‪ sum‬המקבלת מערך של מספרים שלמים וגודלו ומחזירה את סכום‬
‫האיברים במערך‪.‬‬

‫שאלה ‪:3‬‬
‫כתבו שיטה רקורסיבית סטטית בשם ‪ .findNum‬השיטה תקבל כפרמטרים מערך של מספרים‬
‫שלמים ‪ ,arr‬גודלו‪ , n‬מספר שלם ‪ num‬ומספר שלם ‪ . k‬השיטה תחזיר אמת אם המספר ‪num‬‬
‫מופיע בדיוק ‪ k‬פעמים במערך‪ , arr‬אחרת השיטה תחזיר שקר‪.‬‬

‫לדוגמה‪:‬‬

‫{ )‪public static boolean findNum(int[] arr, int n, int num, int k‬‬

‫}‬

‫{ ) ‪public static void main( String[] args‬‬

‫; } ‪int[] a = { 3 , 2 , 7 , 2 , 3 , 1 , 3 , 2‬‬

‫; ) ) ‪System.out.println ( findNum ( a , a.length , 2 , 3‬‬


‫יודפס ‪ true‬משום שהמספר ‪ 2‬מופיע בדיוק ‪ 3‬פעמים במערך‪//‬‬

‫; ) ) ‪System.out.println ( findNum ( a , a.length , 3 , 2‬‬

‫יודפס ‪ false‬משום שהמספר ‪ 3‬לא מופיע בדיוק פעמיים במערך‪//‬‬

‫; ) ) ‪System.out.println ( findNum ( a , a.length , 9 , 4‬‬

‫יודפס ‪ false‬משום שהמספר ‪ 9‬לא מופיע בדיוק ‪ 4‬פעמים במערך‪//‬‬

‫{‬

‫שאלה ‪:4‬‬
‫עליכם לכתוב שיטה רקורסיבית וסטטית בשם ‪ .howMany‬השיטה תקבל כפרמטרים מערך של‬
‫מספרים ממשיים מסוג ‪ double‬וגודל של מערך זה ותענה על השאלה הבאה‪" :‬כמה איברים במערך‬
‫מהווים סכום של שני האיברים שלפניהם?"‪ .‬חתימת השיטה היא‪howMany(double[] A, int n) :‬‬
‫לדוגמא‪:‬‬

‫{)‪public static main(String[] args‬‬


‫;}‪double[] A = {1.2, 2.3‬‬
‫;}‪double[] B = {1.2, 2.3, 3.5, 1.1, 4.6‬‬

‫‪System.out.println(howMany(A, 2)); //0‬‬


‫‪System.out.println(howMany(B, 5)); //2‬‬
‫}‬

You might also like