fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int factorial(int n, int acc) {
  5. if (n == 0) {
  6. return acc;
  7. } else {
  8. return factorial(n - 1, acc * n);
  9. }
  10. }
  11.  
  12. int foo(int n, int acc) {
  13. if (n == 0) {
  14. return acc;
  15. } else {
  16. return foo(n - 1, factorial(n, 1) + acc);
  17. }
  18. }
  19.  
  20. int main(void) {
  21. char s[3];
  22. puts("1以上10以下の整数を入力してください");
  23. scanf("%2s%*[^\n]", s);
  24. int n = strtol(s, NULL, 10);
  25. if (n < 1 || n > 10) {
  26. return EXIT_FAILURE;
  27. } else {
  28. printf("%d\n", foo(n, 0));
  29. }
  30. return EXIT_SUCCESS;
  31. }
  32.  
Runtime error #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
1以上10以下の整数を入力してください