fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int getAllWays(int b, int li, int rem)
  6. {
  7. if (rem==0)
  8. {
  9. return 1;
  10. }
  11. if (li<=0)
  12. {
  13. return 0;
  14. }
  15. int remrt = pow(rem,(1.0/b));
  16. while(remrt>=li)
  17. {
  18. remrt--;
  19. }
  20. // Select case
  21. int v1 = getAllWays(b, remrt, rem-pow(remrt,b));
  22. // Reject case
  23. int v2 = getAllWays(b, remrt, rem);
  24. return v1+v2;
  25. }
  26.  
  27. int getAllWays(int a, int b)
  28. {
  29. // Write your code here
  30. int li = pow(a,(1.0/b));
  31. li++;
  32. return getAllWays(b, li, a);
  33. }
  34.  
  35. int main()
  36. {
  37. int a, b;
  38. cin >> a >> b;
  39. cout <<getAllWays(a, b);
  40. }
Success #stdin #stdout 0.01s 5476KB
stdin
100 2
stdout
3