Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class LabProgram {
  4. public static void main(String[] args) {
  5.  
  6. // define variables
  7. Scanner scnr = new Scanner(System.in);
  8. int penniesInput;
  9. int pennies = 0;
  10. int nickels = 0;
  11. int dimes = 0;
  12. int quarters = 0;
  13. int dollars = 0;
  14.  
  15. // ask user for input
  16. penniesInput = scnr.nextInt();
  17.  
  18. // first, we simply check if input is 0, if so, end the program
  19. // with a message. if not, continue the program.
  20. if (penniesInput == 0) {
  21. System.out.println("No change");
  22. scnr.close();
  23. return;
  24. }
  25.  
  26. // the way to think about this is to start from the highest coin and work
  27. // downwards to the lowest coin, so dollars to pennies. so the first question
  28. // is how many dollars does that represent, if any?
  29.  
  30. // well, we know 100 pennies = 1 dollar, but the question here is how many times
  31. // can you fit 100 in that input. ex: input is 200, i can fit 2 times 100, so 2 dollars,
  32. // if input is 50, i can fit 0 times 100 in it, etc. we need to determine this first,
  33. // it will tell us how many dollars and also, if remainder is 0, there is no need to proceed
  34. // further, we reached 0 pennies remaining to distribute.
  35.  
  36. // so, what can you use to figure out how many times does 100 fit in the number?
  37. // well, lucky for us, Java does the job for us, kinda, i mean if we declared the
  38. // variables as ints, then if there is a remainder, it will be cut and only whole
  39. // ints are considered, how many of them CAN fit. so, we can divide the input by 100
  40. // to find how many whole INTs does fit in the number, and this is our dollar variable.
  41.  
  42. dollars = penniesInput / 100;
  43.  
  44. // then, we need to subtract that many dollars from the input to continue forward,
  45. // so dollars(int) * 100
  46.  
  47. penniesInput = penniesInput - (100 * dollars); // remaining pennies after this operation
  48.  
  49. // from here, we need to check if you have 0 or you can continue.
  50. // if you cannot continue, because it is 0, then you end the program here,
  51. // there is no need to continue forward. if not, continue the program till
  52. // you reach the end, pennies. if program continues, we still keep track
  53. // of the info, stored in the variables.
  54.  
  55. if (penniesInput == 0) {
  56. // check if 1 dollar or more for the plural case
  57. if (dollars > 1) {
  58. System.out.println(dollars + " Dollars");
  59. } else {
  60. System.out.println(dollars + " Dollar");
  61. }
  62. // after that, close scanner and end the program
  63. scnr.close();
  64. return;
  65. }
  66.  
  67. // from here, we use the same format of logic as above, but now instead
  68. // of dealing with 100, we deal with other numbers that represent quarters,
  69. // dimes, nickels and pennies, so 25, 10, 5 and 1. the only added tricky part
  70. // is that for whatever part you are on and need to end the program, you need
  71. // to keep track of what you had before, stored in variables and print correctly
  72.  
  73. // from here, im not going to write a lot of comments, i will just make a compact
  74. // form of what you need to proceed for quarters, dimes, nickels and pennies.
  75. // it's literally the same format, just other numbers
  76.  
  77. // let's do quarters next, so instead of dealing with 100, we deal with 25
  78. quarters = penniesInput / 25;
  79. penniesInput = penniesInput - (25 * quarters);
  80. if (penniesInput == 0) {
  81. // we follow the order of prints, dollars first, then quarters, etc
  82. // highest to lowest
  83. if (dollars > 1) {
  84. System.out.println(dollars + " Dollars");
  85. } else if (dollars == 1) {
  86. System.out.println(dollars + " Dollar");
  87. }
  88. if (quarters > 1) {
  89. System.out.println(quarters + " Quarters");
  90. } else {
  91. System.out.println(quarters + " Quarter");
  92. }
  93. scnr.close();
  94. return;
  95. }
  96.  
  97. // next is dimes, so we deal with 10
  98. dimes = penniesInput / 10;
  99. penniesInput = penniesInput - (10 * dimes);
  100. if (penniesInput == 0) {
  101. if (dollars > 1) {
  102. System.out.println(dollars + " Dollars");
  103. } else if (dollars == 1) {
  104. System.out.println(dollars + " Dollar");
  105. }
  106. if (quarters > 1) {
  107. System.out.println(quarters + " Quarters");
  108. } else if (quarters == 1) {
  109. System.out.println(quarters + " Quarter");
  110. }
  111. if (dimes > 1) {
  112. System.out.println(dimes + " Dimes");
  113. } else {
  114. System.out.println(dimes + " Dime");
  115. }
  116. scnr.close();
  117. return;
  118. }
  119.  
  120. // then, we have nickels, so we deal with 5 now
  121. nickels = penniesInput / 5;
  122. penniesInput = penniesInput - (5 * nickels);
  123. if (penniesInput == 0) {
  124. if (dollars > 1) {
  125. System.out.println(dollars + " Dollars");
  126. } else if (dollars == 1) {
  127. System.out.println(dollars + " Dollar");
  128. }
  129. if (quarters > 1) {
  130. System.out.println(quarters + " Quarters");
  131. } else if (quarters == 1) {
  132. System.out.println(quarters + " Quarter");
  133. }
  134. if (dimes > 1) {
  135. System.out.println(dimes + " Dimes");
  136. } else if (dimes == 1) {
  137. System.out.println(dimes + " Dime");
  138. }
  139. if (nickels > 1) {
  140. System.out.println(nickels + " Nickels");
  141. } else {
  142. System.out.println(nickels + " Nickel");
  143. }
  144. scnr.close();
  145. return;
  146. }
  147.  
  148. // finally, we deal with pennies, so instead of 5, it's 1, the lowest coin
  149. // at this point, the program ends no matter what, cause it's the lowest
  150. // we can go anyway
  151. pennies = penniesInput / 1;
  152. penniesInput = penniesInput - (1 * pennies);
  153. if (penniesInput == 0) {
  154. if (dollars > 1) {
  155. System.out.println(dollars + " Dollars");
  156. } else if (dollars == 1) {
  157. System.out.println(dollars + " Dollar");
  158. }
  159. if (quarters > 1) {
  160. System.out.println(quarters + " Quarters");
  161. } else if (quarters == 1) {
  162. System.out.println(quarters + " Quarter");
  163. }
  164. if (dimes > 1) {
  165. System.out.println(dimes + " Dimes");
  166. } else if (dimes == 1) {
  167. System.out.println(dimes + " Dime");
  168. }
  169. if (nickels > 1) {
  170. System.out.println(nickels + " Nickels");
  171. } else if (nickels == 1) {
  172. System.out.println(nickels + " Nickel");
  173. }
  174. if (pennies > 1) {
  175. System.out.println(pennies + " Pennies");
  176. } else {
  177. System.out.println(pennies + " Penny");
  178. }
  179. scnr.close();
  180. return;
  181. }
  182.  
  183. scnr.close(); // always close scanner
  184.  
  185. }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement