1) #include long long int Fact( int n ); int main(void) { int n = 0; printf("1 から 20 までの数字を入力してください :"); while ( n < 1 || n > 20 ) { scanf("%d", &n); } printf("Factorial of %d is %lld.\n", n, Fact(n)); return 0; } long long int Fact( int n ) { if ( n == 1 ) return 1; else return n * Fact( n - 1 ); } 2) #include int sum( int n ); int main(void) { int n = 0; printf("数字を入力してください :"); scanf("%d", &n); printf("Summation from 1 to %d is %d.\n", n, sum(n)); return 0; } int sum( int n ) { if ( n == 1 ) return 1; else return n + sum( n - 1 ); } 3) #include int gcd(int a, int b); int main(void) { int a = 0, b = 0; printf("二つの数をカンマで区切って入力してください:"); while ( !(a > 0) || !(b > 0) ) scanf("%d,%d", &a, &b); printf("%d と %d の最大公約数は %d です\n", a, b, gcd(a,b)); return 0; } int gcd(int a, int b) { if ( a == b ) { return a; } else if ( a > b ) { return gcd( a-b, b); } else { return gcd( a, b-a); } }