Advertisement
jjessie

CS50 / greedy.c

Jun 19th, 2011
5,760
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. /*#####################
  2. # <greedy.c>              
  3. #  06-19-11 John Jessie
  4. #  <Harvard Computer Science 50>
  5. #  Pset 1 Problem 2
  6. #
  7. #  greedy algorithm to determine fewest
  8. #  coins to pay out amount from input
  9. #  use only quarters, dimes, nickels, and pennies.
  10. #  < for funsies I put some dollar stuff in :-} >
  11. #
  12. #####################*/
  13. #include <cs50.h>
  14. #include <stdio.h>
  15. #include <math.h>
  16.  
  17.  
  18. int
  19. main(void)
  20. {
  21.     // get input
  22.     printf("O hai!  How much change is owed?\n");
  23.     float change = GetFloat();
  24.     // check input
  25.     if (change <= 0)
  26.     {
  27.         printf("Please enter a positive number");
  28.         float change = GetFloat();
  29.     }
  30.     int my_pennies = (int) round(change * 100);
  31.     // initialize some variables
  32.     int coins, quarters, dimes, nickels, pennys;
  33.     coins = quarters = dimes = nickels = pennys = 0;
  34.     // nested do inside of do-while loop to calculate
  35.     // coin usage.
  36.     do
  37.     {
  38.         while (my_pennies >= 25)
  39.         {
  40.             my_pennies = my_pennies - 25;
  41.             coins++;
  42.             quarters++;
  43.         }
  44.     // dimes
  45.         while (my_pennies >= 10)
  46.         {
  47.             my_pennies = my_pennies - 10;
  48.             coins++;
  49.             dimes++;
  50.         }
  51.     // nickels
  52.         while (my_pennies >= 5)
  53.         {
  54.             my_pennies = my_pennies - 5;
  55.             coins++;
  56.             nickels++;
  57.         }
  58.     // Pennies
  59.         while (my_pennies >= 1)
  60.         {
  61.             my_pennies = my_pennies - 1;
  62.             coins++;
  63.             pennys++;
  64.         }
  65.     }
  66.     while (my_pennies > 0);
  67.     // Output results
  68.     printf("\nYour change will be in the form of:\n%d quarters\n%d dimes\n%d nickels\n%d pennies\n", quarters, dimes, nickels, pennys);
  69.     printf("Here's how many coins I gave you: %d\n", coins);
  70.     int dollars = quarters / 4;
  71.     int rem_d = quarters % 4;
  72.     printf("\nIf i could have used dollars you would have received:\n%d dollars\n%d quarters\n%d dimes\n%d nickels\n%d pennies.\n", dollars, rem_d, dimes, nickels, pennys);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement