Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strong Number Using Indirect recursion #1564

Merged
merged 14 commits into from
Dec 20, 2020
1 change: 1 addition & 0 deletions Java/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ _add list here_
- [Sieve of Eratosthenes](math/SieveOfEratosthenes.java)
- [Catalan Number](math/CatalanNumber.java)
- [Palindrome Number Using Recursion](math/PalindromeRecursion.java)
- [Strong Number Using Recursion](math/StrongRecursion.java)

## Dynamic Programming

Expand Down
47 changes: 47 additions & 0 deletions Java/math/StrongRecursion.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
//checking for a strong number using indirect recursion
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a description of the Algorithm/Code that you are looking to implement

import java.util.*;
class StrongRecursion
{
public static int sofd(int n) //recursive function for sum of factorial of digits
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use meaningful function and variable names


{
if(n==0)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Format the Code with spaces around the Operators

return n;
else
return (factorial(n%10)+sofd(n/10));

}

public static int factorial(int n) //factorial of n
{
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}

public static void main()
{
Scanner sc=new Scanner(System.in);
System.out.print(" N = ");
int num=sc.nextInt();
if(num==sofd(num))
System.out.println(" It is a Strong Number");
else
System.out.println(" It is not a Strong Number");
}
}

/* Sample Input And Output ;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

: not ;

* N = 145
* It is a Strong Number
* N = 534
* It is not a Strong Number
*
*
* Time Complexity : O(n)
* Space Complexity : 1
*
*
*/

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a newline at the end of the file