Epic Systems Interview Question
Software Engineer / Developerspublic class test_fourteen {
public static int getDollar(int cents)
{
int dollar;
dollar = cents / 100;
return dollar;
}
public static int getQuarters(int cents)
{
int quarter;
quarter = cents / 25;
return quarter;
}
public static int getDime(int cents)
{
int dime;
dime = cents / 10;
return dime;
}
public static int getNickles(int cents)
{
int nickle;
nickle = cents / 5;
return nickle;
}
public static int getPennys(int cents)
{
int penny;
penny = cents / 1;
return penny;
}
public static void PrintChange(double InputAmount)
{
int cents = (int)(InputAmount * 100); // Calculate total cents
int dollar_bills = getDollar(cents);
cents = cents - (dollar_bills * 100);
int quarter_coins = getQuarters(cents);
cents = cents - (quarter_coins * 25);
int dime_coins = getDime(cents);
cents = cents - (dime_coins * 10);
int nickle_coins = getNickles(cents);
cents = cents - (nickle_coins * 5);
int penny_coins = getPennys(cents);
cents = cents - (penny_coins * 1);
System.out.println("Total Amount: "+InputAmount);
System.out.println("Dollar Bills: "+dollar_bills);
System.out.println("Quarter Coins: "+quarter_coins);
System.out.println("Dime Coins: "+dime_coins);
System.out.println("Nickle Coins: "+nickle_coins);
System.out.println("Penny Coins: "+penny_coins);
}
public static void main(String args[])
{
String input_value = args[0];
double value = Double.parseDouble(input_value);
PrintChange(value);
}
}
#include<stdio.h>
#include<conio.h>
void main()
{
float amt;
static int d,c,q,dm,n;
clrscr();
printf("\nEnter amount: ");
scanf("%f",&amt);
d=(amt*100)/100;
c=(amt*100)-(d*100);
if(c>=25)
{q=c/25;c=c-q*25;}
if(c>=10)
{ dm=c/10; c=c-dm*10;}
if(c>=5)
{ n=c/5; c=c-n*5;}
printf("\nDollar: %d",d);
printf("\nQrtr: %d",q);
printf("\nDime: %d",dm);
printf("\nNckl: %d",n);
printf("\nCents: %d",c);
getch();
}
int min_coin(int total){
if(total==0)
return 0;
if(total>=1 && total<5)
return total;
if(total>=5 && total<10)
return min(min_coin(total-1)+1, min_coin(total-5)+1);
if(total>=10 && total<25)
return min(min_coin(total-1)+1, min(min_coin(total-5)+1, min_coin(total-10)+1));
if(total>=25 && total<100)
return min(min_coin(total-1)+1,
min(min_coin(total-5)+1,
min(min_coin(total-10)+1, min_coin(total-25+1))));
if(total>=100)
return min(min_coin(total-1)+1,
min(min_coin(total-5)+1,
min(min_coin(total-10)+1,
min(min_coin(total-25+1), min_coin(total-100)+1))));
}
int mincoin(int total){
if(total==0)
return 0;
if(total>=1 && total<5)
return total;
if(total>=5 && total<10)
return mincoin(total%5)+(total-total%5)/5;
if(total>=10 && total<25)
return mincoin(total%10)+(total-total%10)/10;
if(total>=25 && total<100)
return mincoin(total%25)+(total-total%25)/25;
if(total>=100)
return mincoin(total%100)+(total-total%100)/100;
}
seems we can prove mathematically the first version equals the second version
and
public class test {
public static void main(String[] args){
double amount =0.09;
int count =0;
while (amount >=1) {
count=count+1;
amount=amount-1;
}
System.out.println("Dollar bill ="+count);
int count1 =0;
while (amount >=0.25) {
count1=count1+1;
amount=amount-0.25;
}
System.out.println("quarter ="+count1);
int count2 =0;
while (amount >=0.10) {
count2=count2+1;
amount=amount-0.10;
}
System.out.println("0.10's ="+count2);
int count3 =0;
while (amount >=0.05) {
count3=count3+1;
amount=amount-0.05;
}
System.out.println("0.5's ="+count3);
int count4 =0;
while (amount >=0.00) {
count4=count4+1;
amount=amount-0.01;
}
System.out.println("0.1's ="+count4);
}}
and
public class test {
public static void main(String[] args){
double amount =0.09;
int count =0;
while (amount >=1) {
count=count+1;
amount=amount-1;
}
System.out.println("Dollar bill ="+count);
int count1 =0;
while (amount >=0.25) {
count1=count1+1;
amount=amount-0.25;
}
System.out.println("quarter ="+count1);
int count2 =0;
while (amount >=0.10) {
count2=count2+1;
amount=amount-0.10;
}
System.out.println("0.10's ="+count2);
int count3 =0;
while (amount >=0.05) {
count3=count3+1;
amount=amount-0.05;
}
System.out.println("0.5's ="+count3);
int count4 =0;
while (amount >0.00) {
count4=count4+1;
amount=amount-0.01;
}
System.out.println("0.1's ="+count4);
}}
void printChange(float amountReceive, float amountActual)
- wanna April 14, 2009{
int dollar = (int)(amountReceive - amountActual);
float change = (float)(amountReceive - amountActual-dollar)*100;
int needchange = (int)change;
cout<<"[my $1:"<<dollar/1<<"\n";
cout<<"[change:"<<change<<"\n";
cout<<"[50 Cents : "<<(needchange / 50)<<"\n";
needchange %=50;
cout<<"[25 Cents : "<<(needchange / 25)<<"\n";
needchange %= 25;
cout<<"[10 Cents : "<<(needchange / 10)<<"\n";
needchange %= 10;
cout<<"[5 Cents : "<<(needchange / 5)<<"\n";
needchange %= 5;
cout<<"[1 Cents : "<<needchange<<"\n";
}