階乗を求める
ループで求める
#include<stdio.h>
unsigned int factorial( unsigned int n)
{
unsigned int result = 1;
while(n != 0) result *= n, --n;
return result
}
int main( void )
{
int n;
printf("nを入力:");
scanf("%d", &n);
printf("%dの階乗は%d\n", n, factorial(n));
return 0;
}
階乗を求める(再帰)
再帰で求める
#include<stdio.h>
unsigned int factorial( unsigned int n)
{
return n == 0 ? 1 : n * factorial(n-1);
}
int main( void )
{
int n;
printf("nを入力:");
scanf("%d", &n);
printf("%dの階乗は%d\n", n, factorial(n));
return 0;
}
素数判定
#include<stdio.h>
#include<stdbool.h>
typedef unsigned int uint;
bool isPrime( uint n )
{
uint i;
if( n < 2 ) return false;
if( n == 2 ) return true;
if( n%2 == 0 ) return false;
for( i = 3; i * i <= n; i += 2 ) if( n%i == 0 ) return false;
return true;
}
int main() {
int n;
scanf("%d", &n);
if(isPrime(n)){
printf("素数\n");
}else{
printf("素数ではない\n");
}
return 0;
}
FizzBuzz問題
#include<stdio.h>
char *fzzBuzz( int n )
{
static char buffer[BUFSIZ];
return n % 15 == 0 ? "FizzBuzz":
n % 3 == 0 ? "Fizz":
n % 5 == 0 ? "Buzz":
(sprintf(buffer,"%d",n), buffer);
}
int main()
{
for( int i = 0; i != 100; ++i )
{
fputs( fizzBuzz( i ), stdout );
}
return 0;
}
#include<stdio.h>
int main(){
int i, f;
for(i=1; i<=100; ++i){
f = 1;
if(i%3 == 0){ printf("Fizz"); f = 0; }
if(i%5 == 0){ printf("Buzz"); f = 0; }
if(f){ printf("%d", i); }
putchar('\n');
}
return 0;
}
最終更新:2010年12月01日 00:37