Interview Question
Country: India
Interview Type: Written Test
As an optimization, every third number is even so if you can keep track of that you don't have to check if it is divisible by 2.
Not sure whats the point of question. All the answers here are good enough. Tried to do it a different way.
package com.project.euler;
public class StrangeFib {
public static String result = "";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
fib(1,1);
System.out.println(result);
}
public static void fib(int n,int m){
if(n+m>1000)
return;
result = result + n+", "+m+", # ";
fib(n+2*m,(n+m)+(n+2*m));
}
}
public class TestFibo {
public static void main(String[] args) {
int n =10;
List<String> l = new ArrayList<String>();
for(int j =0;j<=n;j++){
if(genarateFibinacci(j)%2 == 0)
l.add("#");
else
l.add(String.valueOf(genarateFibinacci(j)));
}
for(String s : l){
System.out.println(s);
}
}
static int genarateFibinacci(int n){
if(n==0)
return 0;
else if(n==1)
return 1;
else
return genarateFibinacci(n-1) + genarateFibinacci(n-2);
}
}
import java.util.Scanner;
public class TestProgram {
static final String COMMA = ",";
static final String START_BRACE = "{";
static final String END_BRACE = "}";
static final String HASH = "#";
public static void main(String[] args) {
Scanner input = null;
try {
input = new Scanner(System.in);
int totalElements = input.nextInt();
int num1 = 1;
int num2 = 1;
System.out.print(START_BRACE + num1 + COMMA + num2);
for (int i = 2; i < totalElements; i++) {
int num3 = num1 + num2;
num1 = num2;
num2 = num3;
System.out.print(COMMA);
if (isEven(num3))
System.out.print(HASH);
else
System.out.print(num3);
}
System.out.println(END_BRACE);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (input != null)
try {
input.close();
} catch (Exception e2) {
// ignore
}
}
}
static boolean isEven(int num) {
return num % 2 == 0 ? true : false;
}
}
You can generate the Fibonacci number by recursion, then just test if the number going to be printed out is an even number or not.
public class test {
public static int fibonacci(int i)
{
if(i == 1 || i == 2)
return 1;
else
return fibonacci(i-1)+fibonacci(i-2);
}
public static void main(String[] args) {
int n;
for(int i = 1; i< 11; i++)
{
n = fibonacci(i);
if(n%2 == 0)
{
System.out.print("# ");
}
else
{
System.out.print(n+" ");
}
}
}
}
public class FebonacciwithSymbol {
public static void febonacci(){
int n1=0,n2=1,n3,i,count=12;
System.out.print(n2);
for(i=2;i<count;++i)
{
n3=n1+n2;
if(n3%2==0){
System.out.print("," + "#");
}
else {
System.out.print("," + n3);
}
n1=n2;
n2=n3;
}
}
public static void main(String[] args) {
febonacci();
}
}
class fabonacci{
- Saurabh Ahuja June 30, 2014public static void main(String []args)
{
int a=1,b=1,c;
int n=10,d=0;
System.out.println(a);
System.out.println(b);
while(d++<n-2)
{
c=a+b;
if(c%2!=0)
System.out.println(c);
else
System.out.println("#");
a=b;
b=c;
}
}
}