*[[練習問題]]の回答例 [#md82ea7f]
#contents
**C++(better C)による回答例 [#fd82d1e2]
***FizzBuzz [#lc3cde05]
 #include<iostream>
 using namespace std;
 int main( int argc, char** argv ){
 	int lim = 0;
 	int i;
 	sscanf( argv[ 1 ], "%d", &lim );
 	for( i = 1; i <= lim; i ++ ){
 		if( i % 15 == 0 ){
 			printf( "FizzBuzz" );
 		}else if( i % 3 == 0 ){
 			printf( "Fizz" );
 		}else if( i % 5 == 0 ){
 			printf( "Buzz" );
 		}else{
 			printf( "%d", i );
 		}
 		printf( " " );
 	}
 	return 0;
 }
***素数判定 [#t96ef71e]
 #include<iostream>
 #include<math>
 using namespace std;
 int main( int argc, char** argv ){
 	int lim = 0;
 	int i;
 	bool isPrime = true;
 	sscanf( argv[ 1 ], "%d", &lim );
 	for( i = 2; i < ( int )( sqrt( lim ) + 1.0 ); i ++ ){
 		if(( lim % i ) == 0 ){
 			isPrime = false;
 			break;
 		}
 	}
 	if( isPrime ){
 		printf( "%dは素数\n", lim );
 	}else{
 		printf( "%dは非素数\n", lim );
 	}
 	return 0;
 }
おまけで素数列挙
 #include<iostream>
 #include<math>
 using namespace std;
 int main( int argc, char** argv ){
 	int lim = 0;
 	int i, j;
 	bool isPrime;
 	sscanf( argv[ 1 ], "%d", &lim );
 	if( lim == 0 ){
 		return -1;
 	}
 	printf( "%d ", 2 );
 	for( i = 3; i < lim; i ++ ){
 		isPrime = true;
 		for( j = 2; j < ( int )( sqrt( i ) + 1.0 ); j ++ ){
 			if(( i % j ) == 0 ){
 				isPrime = false;
 				break;
 			}
 		}
 		if( isPrime ){
 			printf( "%d ", i );
 		}
 	}
 	return 0;
 }
***平方根 [#h1b5f416]
 #include<iostream>
 using namespace std;
 int main( int argc, char** argv ){
 	double target = .0;
 	double result = .0;
 	double temp;
 	int i, j, k;
 	char *str1, *str2;
 
 	sscanf( argv[ 1 ], "%lf", &target );
 	sscanf( argv[ 2 ], "%d", &k );
 	str1 = ( char* )malloc( k );
 	str2 = ( char* )malloc( k );
 
 	if( target == .0 ) return -1;
 	for( i = 9; i >= 0; i -- )
 		if( i * i <= ( int )( target )) break;
 	sprintf( str1, "%d.", i );
 
 	for( j = 0; j < k; j ++ ){
 		for( i = 9; i >= 0; i -- ){
 			sprintf( str2, "%s%d", str1, i );
 			sscanf( str2, "%lf", &temp );
 			if(temp * temp <= target ) break;
 		}
 		strcpy( str1, str2 );
 	}
 	sscanf( str1, "%lf", &result );
 	sprintf( str2, "%%lf,%%.%dlf", k );
 	printf( str2, target, result );
 	return 0;
 }

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS