Pennies for Pay problem

Im trying to write a program that calculates the amount a person would earn over a period of time if their salary is one penny the first day, two pennies the second day, and continues to double each day. The program has to show a table that displays the salary for each day, and then show the total pay at the end of the period. And the output has to be displayed in dollar amount and not the number of pennies. i've been having trouble figuring it out using one of the LOOP methods ( WHILE, DO-WHILE, FOR) for this program.
This is what i have so far,
 
 
import	java.util.*;
import	javax.swing.*;
 
public class PenniesForPay
{
	public static void main(String [] args)
	{
		int daysPay;
		double Days;
		
		System.out.println("This will calculate an individuals salary " +
						" by getting paid with pennies daily.");
											
		Scanner keyboard = new Scanner (System.in);
		
		System.out.println("How many days does the individual work?");
		Days = keyboard.nextInt();
		
		System.out.println("Days	Salary");
		System.out.println("------------------");

Open in new window

AgentC4Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

AgentC4Author Commented:
Can anyone please help me with this.
0
Kevin CrossChief Technology OfficerCommented:
I would store your daily pay as a decimal (double) instead of int number of pennies, so basically as 0.01 instead of 1 to represent a pennies value in a dollar.

double daysPay; // daily pay
double totalPay = 0; // you can use a separate variable to hold total salary over period

A for loop would work well here, since the user will be entering a number of days:

for (int d=0; d<Days; d++) {
    // set daysPay
    // display day, which is d+1 OR adjust loop to start at 1 and go to d<=Days
    // display pay in pennies for that day
    // add daily pay to total amount for period
}

// display total amount for period

See how far that helps you get.  Hopefully you can learn for yourself, so that it really makes sense versus me just posting the answer.

One trick I found once you get this working is try to think of formulas you can use to create the daily pay that will take advantage of the loop index.

Best regards,
Kevin
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
AgentC4Author Commented:
Thanks you do a better job at explaining this rather then my teacher which is sad.
0
Rowby Goren Makes an Impact on Screen and Online

Learn about longtime user Rowby Goren and his great contributions to the site. We explore his method for posing questions that are likely to yield a solution, and take a look at how his career transformed from a Hollywood writer to a website entrepreneur.

AgentC4Author Commented:
can you display the whole code for me though, i tried to figure it out and i've been trying since last night believe it or not. this would help me with all the other ones that i need to do. i really appreciate your help.
0
Kevin CrossChief Technology OfficerCommented:

import java.util.Scanner;
 
public class PenniesForPay {
	public static void main(String[] args) {
		double daysPay; // daily pay
		double totalPay = 0; // salary over period
		double Days;
 
		System.out.println("This will calculate an individuals salary "
				+ " by getting paid with pennies daily.");
 
		Scanner keyboard = new Scanner(System.in);
 
		System.out.println("How many days does the individual work?");
		Days = keyboard.nextInt();
 
		for (int d = 0; d < Days; d++) {
			// set daysPay
			daysPay = 0.01 * Math.pow(2, d); // 1, 2, 4, 8, 16, ...
 
			// display day, which is d+1
			// display pay in pennies for that day
			System.out.printf("Day %1d salary is $%2s.\n", d + 1, daysPay);
 
			// add daily pay to total amount for period
			totalPay += daysPay;
		}
 
		// display total amount for period
		System.out.printf("Total salary is $%1s.\n", totalPay);
	}
}

Open in new window

0
AgentC4Author Commented:
Thanks Kevin, i really appreciate the help, this will help me study and figure out the other ones i have to do.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.