0
while (nbalance>=1) {
  System.out.println ("Month: "+ month +   " Balance: " + nbalance +     " Total Payments: " + pay);
  month++;
  nbalance = (nbalance * interest) - pay;
  nbalance--;
  pay = pay+100;
  }

why should it have nbalance--?
also change the position of pay and nbalance operation

Well, nbalance needs to decrease, but that was the wrong choice.
I changed the positions, but is this what you meant?

while (nbalance>=1) {
  nbalance = (nbalance * interest) - pay;
  pay = pay+100;
  System.out.println ("Month: "+ month +   " Balance: " + nbalance +     " Total Payments: " + pay);
  month++;
  }
0

try this

while(nbalance>1 || nbalance==1)

If you take a look at the desired output, you will notice that the balance will go negative at constant payments of $100.00...so I'm thinking we'll have to re-do the while loop and still try to solve this issue.

0

the problem is not the while loop itself but rather the operation of the doubles inside the loop

0
nbalance = (nbalance * interest) - pay;

after this operation nbalance becomes less than 1

Okay, but it still only prints out the first line and not the rest...

0

You still don't get it do you
915*.015 will be equal to....
Then add the value to nbalance

Don't just save the value to nbalance

Edited by zeroliken: n/a

0

You still don't get it do you
915*.015 will be equal to....
Then add the value to nbalance

Don't just save the value to nbalance

Ok, I get that part.

nbalance = (nbalance * interest) + nbalance - pay;

Now the input is:


Enter the monthly payment:
100
Month: 1 Balance: 915.0 Total Payments: 100.0
Month: 2 Balance: 828.725 Total Payments: 200.0
Month: 3 Balance: 641.155875 Total Payments: 300.0
Month: 4 Balance: 350.773213125 Total Payments: 400.0


Which is still incorrect...

0

can you post the operation to get the output...not the code but the solution
cause It's hard for me to guess on my side

0

can you post the operation to get the output...not the code but the solution
cause It's hard for me to guess on my side

The solution, as in how the output is supposed to be?


Enter the monthly payment: 100
Month: 1 balance: 915.0 total payments: 100.0
Month: 2 balance: 828.73 total payments: 200.0
Month: 3 balance: 741.16 total payments: 300.0
Month: 4 balance: 652.27 total payments: 400.0
Month: 5 balance: 562.06 total payments: 500.0
Month: 6 balance: 470.49 total payments: 600.0
Month: 7 balance: 377.54 total payments: 700.0
Month: 8 balance: 283.21 total payments: 800.0
Month: 9 balance: 187.46 total payments: 900.0
Month: 10 balance: 90.27 total payments: 1000.0
Month: 11 balance: -8.38 total payments: 1100.0

0

The solution, as in how the output is supposed to be?


Enter the monthly payment: 100
Month: 1 balance: 915.0 total payments: 100.0
Month: 2 balance: 828.73 total payments: 200.0
Month: 3 balance: 741.16 total payments: 300.0
Month: 4 balance: 652.27 total payments: 400.0
Month: 5 balance: 562.06 total payments: 500.0
Month: 6 balance: 470.49 total payments: 600.0
Month: 7 balance: 377.54 total payments: 700.0
Month: 8 balance: 283.21 total payments: 800.0
Month: 9 balance: 187.46 total payments: 900.0
Month: 10 balance: 90.27 total payments: 1000.0
Month: 11 balance: -8.38 total payments: 1100.0

What I meant to say is the solution on how did 915 become 828 then 741 then 652 and so on cause as you can see your current operation cannot do this

If you don't know the solution by hand then try not to code it yet

Edited by zeroliken: n/a

0

What I meant to say is the solution on how did 915 become 828 then 741 then 652 and so on cause as you can see your current operation cannot do this

Oh, that's not how my input looks like right now. That is how it is supposed to look like.

Every month the left over balance is to be multiplied by 1.5% interest, and then subtracted by a $100 payment...

0

then subtract it by 100

nbalance = (nbalance * interest) + nbalance - 100;

though it defeats the purpose of using pay in your operation...
but hey as long as you get your desired output you should be happy

Edited by zeroliken: n/a

0

then subtract it by 100

nbalance = (nbalance * interest) + nbalance - 100;

though it defeats the purpose of using pay in your operation...
but hey as long as you get your desired output you should be happy

Hey thanks, it worked! But...it doesn't print out this line, which is supposed be the last line in the output:

Month: 11 balance: -8.38 total payments: 1100.0

0
System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay);
   while(nbalance>1.00){
    double value = nbalance * .015;
    pay+=100;
    nbalance = (value+nbalance) -100;
    System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay); 
     month++;
    }

Edited by zeroliken: n/a

0
System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay);
   while(nbalance>1.00){
    double value = nbalance * .015;
    pay+=100;
    nbalance = (value+nbalance) -100;
    System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay); 
     month++;
    }

Ok, this gets the -8.37, but skips the first output line. The output resides to:


Month: 1 Balance: 828.725 Total Payments: 100.0
Month: 2 Balance: 741.155875 Total Payments: 200.0
Month: 3 Balance: 652.273213125 Total Payments: 300.0
Month: 4 Balance: 562.057311321875 Total Payments: 400.0
Month: 5 Balance: 470.4881709917031 Total Payments: 500.0
Month: 6 Balance: 377.54549355657866 Total Payments: 600.0
Month: 7 Balance: 283.20867595992735 Total Payments: 700.0
Month: 8 Balance: 187.4568060993263 Total Payments: 800.0
Month: 9 Balance: 90.26865819081618 Total Payments: 900.0
Month: 10 Balance: -8.377311936321576 Total Payments: 1000.0

0

Ok, this gets the -8.37, but skips the first output line. The output resides to:


Month: 1 Balance: 828.725 Total Payments: 100.0
Month: 2 Balance: 741.155875 Total Payments: 200.0
Month: 3 Balance: 652.273213125 Total Payments: 300.0
Month: 4 Balance: 562.057311321875 Total Payments: 400.0
Month: 5 Balance: 470.4881709917031 Total Payments: 500.0
Month: 6 Balance: 377.54549355657866 Total Payments: 600.0
Month: 7 Balance: 283.20867595992735 Total Payments: 700.0
Month: 8 Balance: 187.4568060993263 Total Payments: 800.0
Month: 9 Balance: 90.26865819081618 Total Payments: 900.0
Month: 10 Balance: -8.377311936321576 Total Payments: 1000.0

already edited my previous post

0

Did you just made the code so that you can make an exact replica of the output?
Cause I was thinking you were trying to make a bank or investment like program :-O

Edited by zeroliken: n/a

0

Oh, okay, but we still had to move month++ before the second println for it to work. Thanks! One more thing, if I were to change the user input to 500, instead of 100, then it wouldn't work. I believe this is because we put 100 everywhere...

0

Did you just made the code so that you can make an exact replica of the output?
Cause I was thinking you were trying to make a bank or investment like program :-O

I was trying to make a proper which the user can input any amount as the monthly payment desired, then the program to calculate it from that...

0

Oh, okay, but we still had to move month++ before the second println for it to work. Thanks! One more thing, if I were to change the user input to 500, instead of 100, then it wouldn't work. I believe this is because we put 100 everywhere...

Hahaha:D:D:D:D:D:D:D:D:D
you make me laugh!!!
of course it will not give the same result like 100 that's why I'm telling you to have a solution by hand before trying to code it... It's like you just want to have the same output as stated but you did not mention how your program really works like when the user wants to have another input...

Most of the given in the code is predefined

Now all our coding could be just a waste

0

How would I modify the program so that it would go according to the user's input...as I was trying to explain..

0

Hahaha:D:D:D:D:D:D:D:D:D
you make me laugh!!!
of course it will not give the same result like 100 that's why I'm telling you to have a solution by hand before trying to code it... It's like you just want to have the same output as stated but you did not mention how your program really works like when the user wants to have another input...

Most of the given in the code is predefined

Now all our coding could be just a waste

Hahahaha, but if you read my inital post, you will see everything is thoroughly explained.

0

My final advice my friend is to know the algorithm before coding

I edited the program so that it would go by the user's input, it does it perfectly, except the pay isn't accumulating right...

class CreditCardBill{
public static void main (String[] args){
  Scanner input = new Scanner(System.in);
  int month = 1;
  System.out.println ("Enter the monthly payment: ");
  double pay = input.nextInt();
  double left = 1000;
  double interest = 0.015;
  double balance = (left * interest) + left; 
  double nbalance = (balance - pay);
  System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay);     
  while(nbalance>1.00){
    double value = nbalance * .015;
    month++;
    double total = pay + pay;
    nbalance = (value+nbalance) -pay;
    System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + total); 
    }
  }
}

THE OUTPUT:

Enter the monthly payment:
500
Month: 1 Balance: 515.0 Total Payments: 500.0
Month: 2 Balance: 22.725000000000023 Total Payments: 1000.0
Month: 3 Balance: -476.934125 Total Payments: 1000.0
>

Edited by JavaPrograms: n/a

0

you only posted the output you want
not the real program description

Haha, if you scroll down a bit, in the inital post, it says:

"Say that you owe the credit card company $1000.00. The company charges you 1.5% per month on the unpaid balance. You have decided to stop using the card and to pay off the debt by making a monthly payment of N dollars a month. Write a program that asks for the monthy payment, then writes out the balance and total payments so far for every succeeding month until the balance is zero or less.

For each month, calculate the interest due on the unpaid balance. Then calculate the new balance by adding the interest and subtracting the payment."

0

Haha, if you scroll down a bit, in the inital post, it says:

"Say that you owe the credit card company $1000.00. The company charges you 1.5% per month on the unpaid balance. You have decided to stop using the card and to pay off the debt by making a monthly payment of N dollars a month. Write a program that asks for the monthy payment, then writes out the balance and total payments so far for every succeeding month until the balance is zero or less.

For each month, calculate the interest due on the unpaid balance. Then calculate the new balance by adding the interest and subtracting the payment."

Then the fool here is me I should have initially and repeatedly told you to have a working solution before coding

I got too obsessed answering your every problem.. sorry

0

ehem..anyway just store the value in a separate variable

int payement = pay;    
System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay);
    while(nbalance>1.00){
    double value = nbalance * .015;
    payement+=100;
    nbalance = (value+nbalance) - pay;
    System.out.println ("Month: "+ month + " Balance: " + nbalance + " Total Payments: " + pay);
    month++;
    }
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.