Interview Question
Android EngineersCountry: India
Interview Type: In-Person
public class CareerCup {
static ArrayList<Integer> elements = new ArrayList<>();
static int inputValue;
public static void main(String args[]){
System.out.println("Enter the number");
Scanner reader = new Scanner(System.in);
inputValue = reader.nextInt();
FindNumbers(inputValue);
System.out.println("Count is: " + elements.size());
System.out.print("numbers are: ");
for (int i = 0; i < elements.size(); i++) {
int value = elements.get(i);
System.out.print(value + ",");
}
}
public static void FindNumbers(int value){
if(check()){
System.out.println("Finished finding numbers");
}else{
elements.add(GetNearestSquare(value));
FindNumbers(inputValue - getSum());
}
}
private static int getSum() {
int len = elements.size();
int sum = 0;
for(int i=0; i<len; i++){
int n = elements.get(i);
sum = n*n + sum;
}
return sum;
}
public static boolean check(){
int len = elements.size();
int sum = 0;
for(int i=0; i<len; i++){
int n = elements.get(i);
sum = n*n + sum;
}
if(sum == inputValue){
return true;
}
else{
return false;
}
}
public static int GetNearestSquare(int num){
int k = 0;
if(num == 1)
k = 1;
else{
for(int i=1; i<=num; i++){
if(i*i > num){
k = i - 1;
break;
}
}
}
return k;
}
}
package com.eb.corealgo;
public class SquareValue {
int finalCount=0;;
public int getNumberSquareCount(int number){
int foundIndexValue=-1;
int repeatIndexValue=-1;
boolean isComplete=false;
int repeatNumber=-1;
for(int i=1;i<=number;i++){
int doubleVal=i*i;
if(number==doubleVal){
foundIndexValue=i;
isComplete=true;
break;
}
if(doubleVal>number){
foundIndexValue=i;
break;
}
if(doubleVal<number){
foundIndexValue=i;
}
}
if(foundIndexValue!=-1){
repeatIndexValue=foundIndexValue-1;
finalCount++;
}
repeatNumber=number-repeatIndexValue*repeatIndexValue;
if(repeatNumber>0 && repeatNumber!=1 && !isComplete){
//call again
foundIndexValue=-1;
getNumberSquareCount(repeatNumber);
}
else if(!isComplete){
finalCount++;
}
return finalCount;
}
//test
public static void main(String args[]){
SquareValue v=new SquareValue();
v.getNumberSquareCount(11);
}
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int check (int );
int main(int argc, char *argv[])
{
int number,i;
printf("Enter the number \n");
scanf("%d",&number);
int series[10];
printf("The num is\n");
for(i=0;;i++)
{
if(number>1)
{
series[i]=check(number);
printf("%d^2 +",series[i]);
number = (number - series[i]*series[i]);
}
else if(number == 1)
{
printf("1^2");
number = 0;
}
else
break;
}
return 0;
}
int check (int num)
{
return ( (int) sqrt(num));
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int check (int );
int main(int argc, char *argv[])
{int number,i;
printf("Enter the number \n");
scanf("%d",&number);
int series[10];
printf("The num is\n");
for(i=0;;i++)
{
if(number>1)
{series[i]=check(number);
printf("%d^2 +",series[i]);
number = (number - series[i]*series[i]);}
else if(number == 1)
{printf("1^2");
number = 0;}
else break;}
return 0;
}
int check (int num)
{return ( (int) sqrt(num));}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int check (int );
int main(int argc, char *argv[])
{
int number,i;
printf("Enter the number \n");
scanf("%d",&number);
int series[10];
printf("The num is\n");
for(i=0;;i++)
{
if(number>1)
{
series[i]=check(number);
printf("%d^2 +",series[i]);
number = (number - series[i]*series[i]);
}
else if(number == 1)
{
printf("1^2");
number = 0;
}
else
break;
}
return 0;
}
int check (int num)
{
return ( (int) sqrt(num));
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int check (int );
int main(int argc, char *argv[])
{
int number,i;
printf("Enter the number \n");
scanf("%d",&number);
int series[10];
printf("The num is\n");
for(i=0;;i++)
{
if(number>1)
{
series[i]=check(number);
printf("%d^2 +",series[i]);
number = (number - series[i]*series[i]);
}
else if(number == 1)
{
printf("1^2");
number = 0;
}
else
break;
}
return 0;
}
int check (int num)
{
return ( (int) sqrt(num));
}
void decompose(int n) {
vector<int> result = {};
while(n) {
int odd = 1;
int count = 1;
while(n>0) {
n -= odd;
odd+=2;
count++;
}
if(n == 0) {
result.push(count);
} else {
n += odd;
result.push(count-1);
}
}
for(int i = 0; i < result.length; i++) {
cout << result[i] << "^" << 2 << +;
}
cout << endl;
}
package com.santosh;
public class Sample {
public static void main(String[] args)
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
sqrt(6);
}
static int sqrt(double num) {
if (num == 1) {
System.out.println(1);
return 1;
}
if (num == 0) {
return 1;
}
Integer sqrt = (int) Math.sqrt(num);
System.out.println(sqrt);
num = num - sqrt * sqrt;
return sqrt(num);
}
}
package com.santosh;
public class Sample {
public static void main(String[] args)
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
sqrt(6);
}
static int sqrt(double num) {
if (num == 1) {
System.out.println(1);
return 1;
}
if (num == 0) {
return 1;
}
Integer sqrt = (int) Math.sqrt(num);
System.out.println(sqrt);
num = num - sqrt * sqrt;
return sqrt(num);
}
}
package com.santosh;
public class Sample {
public static void main(String[] args)
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
sqrt(6);
}
static int sqrt(double num) {
if (num == 1) {
System.out.println(1);
return 1;
}
if (num == 0) {
return 1;
}
Integer sqrt = (int) Math.sqrt(num);
System.out.println(sqrt);
num = num - sqrt * sqrt;
return sqrt(num);
}
}
package com.santosh;
public class Sample {
public static void main(String[] args)
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
sqrt(6);
}
static int sqrt(double num) {
if (num == 1) {
System.out.println(1);
return 1;
}
if (num == 0) {
return 1;
}
Integer sqrt = (int) Math.sqrt(num);
System.out.println(sqrt);
num = num - sqrt * sqrt;
return sqrt(num);
}
}
- Anonymous May 28, 2016