Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions Keith Number in Java
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
##Program

import java.util.*;
class KeithNumberExample1
{
//user-defined function that checks if the given number is Keith or not
static boolean isKeith(int x)
{
//List stores all the digits of the X
ArrayList<Integer> terms=new ArrayList<Integer>();
//n denotes the number of digits
int temp = x, n = 0;
//executes until the condition becomes false
while (temp > 0)
{
//determines the last digit of the number and add it to the List
terms.add(temp%10);
//removes the last digit
temp = temp/10;
//increments the number of digits (n) by 1
n++;
}
//reverse the List
Collections.reverse(terms);
int next_term = 0, i = n;
//finds next term for the series
//loop executes until the condition returns true
while (next_term < x)
{
next_term = 0;
//next term is the sum of previous n terms (it depends on number of digits the number has)
for (int j=1; j<=n; j++)
next_term = next_term + terms.get(i-j);
terms.add(next_term);
i++;
}
//when the control comes out of the while loop, there will be two conditions:
//either next_term will be equal to x or greater than x
//if equal, the given number is Keith, else not
return (next_term == x);
}
//driver code
public static void main(String[] args)
{
//calling the user-defined method inside the if statement and print the result accordingly
if (isKeith(19))
System.out.println("Yes, the given number is a Keith number.");
else
System.out.println("No, the given number is not a Keith number.");
if(isKeith(742))
System.out.println("Yes, the given number is a Keith number.");
else
System.out.println("No, the given number is not a Keith number.");
if(isKeith(4578))
System.out.println("Yes, the given number is a Keith number.");
else
System.out.println("No, the given number is not a Keith number.");
}
}

#Output:

Yes, the given number is a Keith number.
Yes, the given number is a Keith number.
No, the given number is not a Keith number.