标签:
主要是复习前面的基本内容,以及函数的概念
组合数
#include<stdio.h> int f(int n) { int m=1; for(int i=1;i<=n;i++) m*=i; return m; } int main(void) { int n,m; scanf("%d%d",&n,&m); printf("%d\n",f(n)/(f(m)*f(n-m))); return 0; }
孪生素数
#include<stdio.h> int isprime(int n) { int i; for(i=2;i*i<=n;i++) if(n%i==0) return 0; return 1; } int main(void) { int m; scanf("%d",&m); for(int i=m-2;i>=3;i--) { if(isprime(i)&&isprime(i+2)) { printf("%d %d\n",i,i+2); break; } } return 0; } #include<stdio.h> #include<math.h> #include<assert.h> int isprime(int x) { int i,m; assert(x>=0); m=floor(sqrt(x)+0.5); for(i=2;i<=m;i++) if(x%i==0) return 0; return 1; } int main(void) { int i,m; scanf("%d",&m); for(i=m-2;i>=3;i--) { if(isprime(i)&&isprime(i+2)) { printf("%d %d\n",i,i+2); break; } } return 0; }
交换函数 指针的使用,多个值返回
int swap(int *a,int *b) { t=*a;*a=*b;*b=t; }
注意gdb的使用
gcc test.c -g
gdb a.out (gdb a.exe)
递归的定义
标签:
原文地址:http://www.cnblogs.com/SqLver/p/4934086.html