CC150 8.7

8.7 Given an infinite number of quarters (25 cents), dimes (10 cents), nickels (5 cents) and pennies (1 cent), write code to calculate the number of ways of representing n cents.

int ways(int sum, int n, int cent) // cent is maxCent allow to use.
{
  if (sum == n)
    return 1; // this way is good.
    
  if (sum > n)
    return 0; // this way is bad.
   
  int ways; 
  // sum < n
  if (cent >= 25)
    ways += ways(sum + 25, n , 25);

  if (cent >= 10)
    ways += ways(sum + 10, n , 10);
    
  if (cent >= 5)
    ways += ways(sum + 5, n, 5);
    
  if (cent >= 1)
    ways += ways(sum + 1, n, 1);
    
  return ways;
}


你可能感兴趣的:(interview)