struct Point{
int x, y;
Point ( ) { }
Point ( int x1, int y1) : x ( x1) , y ( y1) { }
} pt[ 10 ] ;
int main ( ) {
int num = 0 ;
for ( int i = 1 ; i <= 3 ; i++ ) {
for ( int j = 1 ; j <= 3 ; j++ ) {
pt[ num++ ] = Point ( i, j) ;
}
}
return 0 ;
}
int t ( int num[ ] ) {
int sum = 0 ;
for ( int i = 0 ; i < 4 ; i++ ) {
sum = sum* 10 + num[ i] ;
}
return sum;
}
int to_array ( int n, int num[ ] ) {
for ( int i = 0 ; i < 4 ; i++ ) {
num[ i] = n % 10 ;
n / = 10 ;
}
}
#include <stdio.h>
int main ( ) {
int n;
char str[ ] ;
sscanf ( str, "%d" , & n) ;
sprintf ( str, "%d" , n) ;
return 0 ;
}
#include <time.h>
#include <stdlib.h>
#include <math.h>
int partition ( int a[ ] , int left, int right) {
int p = ( int ) ( round ( 1.0 * rand ( ) / RAND_MAX* ( right- left) + left) ) ;
swap ( a[ p] , a[ left] ) ;
int temp = a[ left] ;
while ( left < right) {
while ( left < right && a[ right] >= temp) right-- ;
a[ left] = a[ right] ;
while ( left < right && a[ left] <= temp) left++ ;
a[ right] = a[ left] ;
}
a[ left] = temp;
return left;
}
int quicksort ( int a[ ] , int left, int right) {
if ( left < right) {
int pos = partition ( a, left, right) ;
quicksort ( a, left, pos- 1 ) ;
quicksort ( a, pos+ 1 , right) ;
}
}
int main ( ) {
srand ( ( unsigned ) time ( NULL ) ) ;
int a[ ] ;
quicksort ( a, left, right) ;
return 0 ;
}
typedef long long LL;
LL binaryPow ( LL a, LL b) {
LL ans = 1 ;
while ( b > 0 ) {
if ( b & 1 ) {
ans = ans * a;
}
a = a* a;
b >>= 1 ;
}
return ans;
}
int main ( ) {
LL x, y, ans;
LL ans = binaryPow ( x, y) ;
return 0 ;
}
int gcd ( int a, int b) {
if ( b == 0 ) return a;
else return gcd ( b, a% b) ;
}
簡潔版:
int gcd ( int a, int b) {
return ! b ? a : gcd ( b, a % b) ;
}
int lcm ( int a, int b, int d) {
return a/ d* b;
}
素數可以直接用枚舉的方法得出,常用的枚舉時間複雜度爲O ( n) 或O ( sqrt ( n) )
1. 第一種
#include <math.h>
bool isPrime ( int n) {
if ( n <= 1 ) return false ;
int sqrt = ( int ) sqrt ( 1.0 * n) ;
for ( int i = 2 ; i <= sqrt; i++ ) {
if ( n % i == 0 ) return false ;
}
return true ;
}
2. 第二種
bool isPrime ( int n) {
if ( n <= 1 ) return false ;
for ( int i = 2 ; i * i <= n; i++ ) {
if ( n % i == 0 ) return false ;
}
return true ;
}
3. 第三種: 介紹的三種代碼中最高效的一種方法: Eratosthenes篩法
const int maxn = 101 ;
int prime[ maxn] , num = 0 ;
bool p[ maxn] = { 0 } ;
void Find_Prime ( ) {
for ( int i = 2 ; i < maxn; i++ ) {
if ( p[ i] == false ) {
prime[ num++ ] = i;
for ( int j = i + i; j < maxn; j + = i) {
p[ j] = true ;
}
}
}
}
此處只寫模板,不過多說明原理,若不清楚原理又想了解,可自行百度原理學習
如果認識作者,可微信向作者詢問