Wednesday, October 30, 2013

codechef HS08TEST - ATM c++ solution

my codechef HS08TEST - ATM c++ solution

codechef HS08TEST - ATM problem: http://www.codechef.com/problems/HS08TEST/

ATM

All submissions for this problem are available.

Pooja would like to withdraw X $US from an ATM. The cash machine will only accept the transaction if Xis a multiple of 5, and Pooja's account balance has enough cash to perform the withdrawal transaction (including bank charges). For each successful withdrawal the bank charges 0.50 $US.
Calculate Pooja's account balance after an attempted transaction.

Input

Positive integer 0 < X <= 2000 - the amount of cash which Pooja wishes to withdraw.
Nonnegative number 0<= Y <= 2000 with two digits of precision - Pooja's initial account balance.

Output

Output the account balance after the attempted transaction, given as a number with two digits of precision. If there is not enough money in the account to complete the transaction, output the current bank balance.

Example - Successful Transaction

Input:
30 120.00

Output:
89.50

Example - Incorrect Withdrawal Amount (not multiple of 5)

Input:
42 120.00

Output:
120.00

Example - Insufficient Funds

Input:
300 120.00

Output:
120.00


here is my c++ solution to codechef HS08TEST - ATM problem. http://ideone.com/hF0KPo
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
// your code goes here
int a;
float b;
cin>>a>>b;
if(a%5==0&&a<=b-0.5) b=b-a-0.50;
cout<<fixed<<setprecision(2)<<b;
return 0;
}


8 comments:

  1. Sir,is it necessary to write the program using "int main()"?
    my code was :
    #include
    #include
    #include
    void main()
    {
    clrscr();
    int x;float y;
    cout<<"Enter the amount you want to withdraw.(As a multiple of 5)";
    cin>>x;
    cout<<"Enter your current bank balance.";
    cin>>y;
    if(x<y && x%5==0)
    y=y-x-0.5;
    cout<<setprecision(2)<<y;
    getch();
    }

    But, this solution is not running successfully. Can you please explain why?

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. #include

    int main(void) {
    float pa, x;
    int wa;
    scanf("%d %f", &wa, &pa);
    if (wa % 5 == 0)
    {
    if (pa>=(wa+0.5))
    {
    x = pa - wa - 0.5;
    printf("%.2f", x);
    }
    else
    printf("%.2f", pa);
    }
    else
    printf("%.2f", pa);
    }

    ReplyDelete