FactSet Research Systems, Inc Interview Question for Software Engineer / Developers


Country: India
Interview Type: Written Test




Comment hidden because of low score. Click to expand.
1
of 1 vote

{
public class NumberToWord  
 
{
    private static final String[] specialNames = {
        "",
        " thousand",
        " million",
        " billion",
        " trillion",
        " quadrillion",
        " quintillion"
    };
    
    private static final String[] tensNames = {
        "",
        " ten",
        " twenty",
        " thirty",
        " fourty",
        " fifty",
        " sixty",
        " seventy",
        " eighty",
        " ninety"
    };
    
    private static final String[] numNames = {
        "",
        " one",
        " two",
        " three",
        " four",
        " five",
        " six",
        " seven",
        " eight",
        " nine",
        " ten",
        " eleven",
        " twelve",
        " thirteen",
        " fourteen",
        " fifteen",
        " sixteen",
        " seventeen",
        " eighteen",
        " nineteen"
    };
    
    private String convertLessThanOneThousand(int number) {
        String current;
        
        if (number % 100 < 20){
            current = numNames[number % 100];
            number /= 100;
        }
        else {
            current = numNames[number % 10];
            number /= 10;
            
            current = tensNames[number % 10] + current;
            number /= 10;
        }
        if (number == 0) return current;
        return numNames[number] + " hundred" + current;
    }
    
    public String convert(int number) {

        if (number == 0) { return "zero"; }
        
        String prefix = "";
        
        if (number < 0) {
            number = -number;
            prefix = "negative";
        }
        
        String current = "";
        int place = 0;
        
        do {
            int n = number % 1000;
            if (n != 0){
                String s = convertLessThanOneThousand(n);
                current = s + specialNames[place] + current;
            }
            place++;
            number /= 1000;
        } while (number > 0);
        
        return (prefix + current).trim();
    }
    
    public static void main(String[] args) {
        NumberToWord obj = new NumberToWord();
        System.out.println("*** " + obj.convert(123456789));
        System.out.println("*** " + obj.convert(-55));
    }
}
// src : javahungry.blogspot.com

}

- shah.naiya8291 November 26, 2014 | Flag Reply
Comment hidden because of low score. Click to expand.
1
of 1 vote

#include<stdio.h>
char str[100][100]={"ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE"};
char s[20][20]={"ELEVEN","TWELEVE","THIRTEEN","FOURTEEN","FIFTEEN","SIXTEEN",
"SEVENTEEN","EIGHTEEN","NINTEEN"};
char ss[10][10]={"TEN","TWENTY","THIRTY","FOURTY","FIFTY","SIXTY","SEVENTY","EIGHTY",
"NINTY"};
int unit(int num) {
num?printf("%s ",str[num-1]):printf("ZERO ");
}
int tens(int num) {
(num>10&&num<20)?printf("%s ",s[num-11]):(printf("%s ",ss[num/10-1])
&&((num%10)?unit(num%10):1));
}
int hundreds(int num) {
(num/100)?(unit(num/100)&&printf("HUNDRED AND ")):1;
(num%100)?tens(num%100):1;
}
int thousand(int num) {
(num/1000)?(unit(num/1000)&&printf("THOUSAND ")):1;
(num%1000)?hundreds(num%1000):1;
}
int ten_thousand(int num) {
(num/1000)?(tens(num/1000)&&printf("THOUSAND ")):1;
(num%1000)?hundreds(num%1000):1;
}
int lak(int num) {
(num/100000)?(tens(num/10000)&&printf("LAKHS ")):1;
(num%100000)?ten_thousand(num%100000):1;
}
int ten_lak(int num) {
(num/100000)?(tens(num/100000)&&printf("LAKHS ")):1;
(num%100000)?ten_thousand(num%100000):1;
}
int crore(int num) {
(num/10000000)?(tens(num/10000000)&&printf("CRORE ")):1;
(num%1000000)?ten_lak(num%10000000):1;
}
int ten_crore(int num) {
(num/10000000)?(tens(num/10000000)&&printf("CRORE ")):1;
(num%10000000)?ten_lak(num%10000000):1;
}



int main()
{
long int num;
int n,r,c=0;
printf("Enter the number:\n");
scanf("%ld",&num);
n=num;
while(n) {
r=n%10;
n=n/10;
c++;
}
switch(c) {
case 1:unit(num);break;
case 2:tens(num);break;
case 3:hundreds(num);break;
case 4:thousand(num);break;
case 5:ten_thousand(num);break;
case 6:lak(num);break;
case 7:ten_lak(num);break;
case 8:crore(num);break;
case 9:ten_crore(num);break;
}
printf("\n");
return 0;
}

- kshitiz gupta November 27, 2014 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Create switch 1 to 9 returning like one two three etc... And 100,1000,10000 hundred tgousand ... Calculate reminder followed dividing by 10 maintain a variable such that when you are dividing multiply this by 10....

- Anonymous November 26, 2014 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

a c++ solution

#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;

unordered_map<int,string> num2word_lookup({
{0,""},
{1,"one"},
{2,"two"},
{3,"three"},
{4,"four"},
{5,"five"},
{6,"six"},
{7,"seven"},
{8,"eight"},
{9,"nine"},
{10,"ten"},
{11,"eleven"},
{12,"twelve"},
{13,"thirteen"},
{14,"fourteen"},
{15,"fifteen"},
{16,"sixteen"},
{17,"seventeen"},
{18,"eighteen"},
{19,"ninteen"},
{20,"twenty"},
{30,"thirty"},
{40,"forty"},
{50,"fifity"},
{60,"sixty"},
{70,"seventy"},
{80,"eighty"},
{90,"ninty"},
{100,"hundred"},
{1000,"thousand"},
{1000000,"million"},
{1000000000,"billion"},
{1000000000000,"trilion"}});

string speak3Digit(int n){
        string re = "";
        int n1=n%10, n2=(n/10)%10, n3=n/100;
        if(n2==1)
                re=num2word_lookup[n2*10+n1];
        else{
                re=num2word_lookup[n1];
                if(n2!=0)
                re=num2word_lookup[n2*10]+" "+re;
        }
        if(n3)
                re=num2word_lookup[n3]+" hundred "+re;

        return re;
}

string speakNum(int n){
        if(n==0)
                return "zero";

        string re = "";
        bool sign = n>0?true:false;
        unsigned int cnt=1,abs_n=n>0?n:-n;
        while(abs_n){
        re=speak3Digit(abs_n%1000)+(cnt==1?" "+re:" "+num2word_lookup[cnt]+" "+re);
        cnt*=1000;
        abs_n/=1000;
        }
        return sign?re:"negative "+re;
}

int main(){
        cout<<"0 is "+speakNum(0)<<endl;
        cout<<"10234090 is "+speakNum(10234090)<<endl;
        return 0;
}

- nano April 01, 2015 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

#include<iostream.h>
#include<string.h>

void return_power(int i);

void return_number2(int i)
{
//cout << " return_number2 " ;
switch(i)
{
case 0 :
break;

case 1 :
cout << " ONE ";
break;

case 2 :
cout << " TWO ";
break;

case 3 :
cout << " THREE ";
break;

case 4 :
cout << " FOUR ";
break;

case 5 :
cout << " FIVE ";
break;

case 6 :
cout << " SIX ";
break;

case 7 :
cout << " SEVEN ";
break;

case 8 :
cout << " EIGHT ";
break;

case 9 :
cout << " NINE ";
break;
}
}

void return_number(int i)
{
//cout << " return_number " ;
int ii=0,j=0;
ii=i/10;
if(i>=100)
{
return_power(i);
}
else
{
switch(ii)
{
case 0 :
//cout << " ZERO ";
return_number2(i%10);
break;
case 1 :
//cout << " ONE ";
j=i%10;
switch(j)
{
case 0 :
cout << " TEN ";
break;

case 1 :
cout << " ELEVEN ";
break;

case 2 :
cout << " TWELVE ";
break;

case 3 :
cout << " THIRTEEN ";
break;

case 4 :
cout << " FOURTEEN ";
break;

case 5 :
cout << " FIFTEEN ";
break;

case 6 :
cout << " SIXTEEN ";
break;

case 7 :
cout << " SEVENTEEN ";
break;

case 8 :
cout << " EIGHTEEN ";
break;

case 9 :
cout << " NINETEEN ";
break;
}
//return_number2(i%10);
break;
case 2 :
cout << " TWENTY ";
return_number2(i%10);
break;
case 3 :
cout << " THIRTY ";
return_number2(i%10);
break;
case 4 :
cout << " FOURTY ";
return_number2(i%10);
break;
case 5 :
cout << " FIFTY ";
return_number2(i%10);
break;
case 6 :
cout << " SIXTY ";
return_number2(i%10);
break;
case 7 :
cout << " SEVENTY ";
return_number2(i%10);
break;
case 8 :
cout << " EIGHTY ";
return_number2(i%10);
break;
case 9 :
cout << " NINETY ";
return_number2(i%10);
break;
}
}
//cout << " NUMBER " ;
}

void return_power(int i)
{
//cout << " return_power " ;
if((i/10000000))
{
return_number(i/10000000);
cout << " Crores ";
}
i=i%10000000;
if((i/100000))
{
return_number(i/100000);
cout << " Lakhs ";
}
i=i%100000;
if((i/1000))
{
return_number(i/1000);
cout << " Thousand ";
}
i=i%1000;
if((i/100))
{
return_number(i/100);
cout << "Hundred ";
}
i=i%100;
if((i%100))
{
return_number(i);
}
}

int main()
{
//cout << " main " ;
int i=0;
cout << " Enter number : " << endl;
cin >> i;
return_power(i);
return 0;
}

- KUNAL BANSAL April 21, 2015 | Flag Reply


Add a Comment
Name:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.

Books

is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

Learn More

Videos

CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.

Learn More

Resume Review

Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.

Learn More

Mock Interviews

Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.

Learn More