Advertisement
desant74268

HW7_Recursion

Apr 15th, 2020
686
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.52 KB | None | 0 0
  1. package HW;
  2.  
  3. import org.w3c.dom.ls.LSOutput;
  4.  
  5. import java.util.Arrays;
  6. import java.util.Scanner;
  7.  
  8. public class HW7_Recursion {
  9.     public static void main(String[] args) {
  10.  
  11.         Scanner console = new Scanner(System.in);
  12.        
  13.         int num = enteringNumb(console);
  14.         int[] array = new int[]{12, 1, 2, 5, 96, 87, 4};
  15.        
  16.         System.out.println("Массив: " + Arrays.toString(array));
  17.         System.out.println("num = " + num);
  18.        
  19.         System.out.println(recursionFactorial(num)); //классная работа
  20.         System.out.println(recursionFactorialWhile(num));//домашняя работа
  21.        
  22.         System.out.println("Массив до числа N: "); //первая попытка
  23.         recursionArray(array, num);
  24.        
  25.         System.out.println("Число Фибоначчи: " + fibonacci(num));
  26.        
  27.         System.out.print("Массив до N индекса: "); //вторая попытка
  28.         printMass(array,num,0);
  29.        
  30. //1. Debugger
  31. //2. Переписать программу Факториал через цикл while
  32. //3. Вывести все элементы массива от 1 до n. (recursion)
  33. //4. Числа Фибоначчи. Посчитать n -й член последовательности Фибоначчи 1 1 2 3 5 8 13 21
  34. //5. Рекурсия (почитать) обратный ход рекурсии
  35.  
  36.     }
  37.  
  38.     public static int enteringNumb(Scanner console) {
  39.         System.out.println("Введите число: ");
  40.         int num = console.nextInt();
  41.         return num;
  42.     }
  43.  
  44.  
  45.     public static int recursionFactorial(int num) {
  46.         if ((num == 1) || (num == 0)) {
  47.             return 1;
  48.         } else {
  49.             return num * recursionFactorial(num - 1);
  50.         }
  51.     }
  52.  
  53.     //2. Переписать программу Факториал через цикл while
  54.     public static int recursionFactorialWhile(int num) {
  55.         while ((num == 1) || (num == 0)) {
  56.             return 1;
  57.         }
  58.         return num * recursionFactorialWhile(num - 1);
  59.     }
  60.    
  61.    
  62.     //3. Вывести все элементы массива от 1 до n. (recursion) вторая попытка(на второй день раздумий) вроде все ок)))
  63.     public static int printMass(int[] array, int n, int start) {
  64.         if (start == n) {
  65.             System.out.println(array[start]);
  66.             return  1;
  67.         } else if (n > start) {
  68.             System.out.print(array[start] + ", ");
  69.             return printMass(array, n, start + 1);
  70.         } else{
  71.             return 0;
  72.         }
  73.     }
  74.  
  75.  
  76.     //3. Вывести все элементы массива от 1 до n. (recursion) // моя первая попытка, массив выходит в обратном порядке(((
  77.     public static int recursionArray(int[] array, int n) {
  78.         if (n + 1 == 0) {
  79.             return 1;
  80.         } else {
  81.             System.out.print(array[n] + ", ");
  82.             return recursionArray(array, n - 1);
  83.         }
  84.     }
  85.  
  86.    
  87.     //4. Числа Фибоначчи. Посчитать n -й член последовательности Фибоначчи 1 1 2 3 5 8 13 21
  88.     public static int fibonacci(int n) {
  89.         if (n == 0) {
  90.             return 0;
  91.         } else if (n <= 2) {
  92.             return 1;
  93.         } else {
  94.             int fibTerm = fibonacci(n - 1) + fibonacci(n - 2);
  95.             return fibTerm;
  96.         }
  97.     }
  98.  
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement