Skip to content

Commit 46b2581

Browse files
lab03, Recursive and cycle functions
1 parent 3de5883 commit 46b2581

File tree

10 files changed

+95
-0
lines changed

10 files changed

+95
-0
lines changed
2.34 KB
Binary file not shown.
411 Bytes
Binary file not shown.
631 Bytes
Binary file not shown.
722 Bytes
Binary file not shown.
398 Bytes
Binary file not shown.

lab03/src/Main.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
public class Main {
2+
public static void main(String[] args) {
3+
int n = 4;
4+
5+
factorial fact = new factorial();
6+
int res1 = fact.recursionExecute(n);
7+
System.out.println("Factorial recursive n: " + n);
8+
System.out.println("Factorial recursive execute: " + res1);
9+
10+
int res2 = fact.cycleExecute(n);
11+
System.out.println("Factorial cycle n: " + n);
12+
System.out.println("Factorial cycle execute: " + res2);
13+
assert res1 == res2 : "different values";
14+
15+
16+
fibonacci fib = new fibonacci();
17+
18+
res1 = fib.recursionExecute(n);
19+
System.out.println("Fibonacci recursive n: " + n);
20+
System.out.println("Fibonacci recursive execute: " + res1);
21+
22+
res2 = fib.cycleExecute(n);
23+
System.out.println("Fibonacci cycle n: " + n);
24+
System.out.println("Fibonacci cycle execute: " + res2);
25+
assert res1 == res2 : "different values";
26+
27+
28+
int number = 233151;
29+
digitsSum digitSum = new digitsSum();
30+
res1 = digitSum.execute(number);
31+
System.out.println("Digits sum number: " + number);
32+
System.out.println("Digits sum recursive execute: " + res1);
33+
34+
int x = 5;
35+
int y = 2;
36+
sum sum = new sum();
37+
res1 = sum.execute(x,y);
38+
System.out.println("Sum without arithmetic operations x: " + x + ", y: " + y);
39+
System.out.println("Sum without arithmetic operations execute: " + res1);
40+
41+
}
42+
}

lab03/src/digitsSum.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
public class digitsSum {
2+
int execute(int number){
3+
if (number == 0){
4+
return 0;
5+
}
6+
7+
return (number % 10) + execute(number/10);
8+
}
9+
}

lab03/src/factorial.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class factorial {
2+
int recursionExecute(int n){
3+
if (n < 1) return 1;
4+
5+
return n * recursionExecute(n - 1);
6+
}
7+
int cycleExecute(int n){
8+
int res = 1;
9+
for(int i = 1; i <= n; i++){
10+
res *= i;
11+
}
12+
13+
return res;
14+
}
15+
}

lab03/src/fibonacci.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
public class fibonacci {
2+
3+
int recursionExecute(int n){
4+
if (n <= 1) return n;
5+
6+
int curr = recursionExecute(n - 1);
7+
int prev = recursionExecute(n - 2);
8+
9+
return curr + prev;
10+
}
11+
int cycleExecute(int n){
12+
int prev = 0;
13+
int curr = 1;
14+
for (int i = 0; i <= n; i++){
15+
int temp = curr;
16+
curr = prev + curr;
17+
prev = temp;
18+
}
19+
20+
return curr;
21+
}
22+
}

lab03/src/sum.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
public class sum {
2+
public int execute(int x, int y){
3+
if (y == 0) return x;
4+
5+
return execute(x ^ y, (x & y) << 1);
6+
}
7+
}

0 commit comments

Comments
 (0)