fork download
  1. #include <iostream>
  2.  
  3. int f(int n) {
  4. if (n == 0) return 1;
  5. return n * f(n - 1);
  6. }
  7.  
  8. int g(int prod, int n) {
  9. if (n == 0) return prod;
  10. return g(n * prod, n - 1);
  11. }
  12.  
  13. int h(int prod, int n) {
  14. label: /* translation */
  15. if (n == 0)
  16. return prod;
  17. prod = n * prod; /* translation */
  18. n = n - 1; /* translation */
  19. goto label; /* translation */
  20. }
  21.  
  22. int main() {
  23. std::cout << f(10) << std::endl;
  24. std::cout << g(1, 10) << std::endl;
  25. std::cout << h(1, 10) << std::endl;
  26. return 0;
  27. }
  28. /* end */
  29.  
Success #stdin #stdout 0s 4528KB
stdin
Standard input is empty
stdout
3628800
3628800
3628800