数学

1,结构体重载运算符
#include <string.h>
struct E{
int score;
int age;
char name[20];
bool operator <(const E &b) const{
if(score != b.score) return score < b.score;
int tmp = strcmp(name,b.name);
if(tmp !=0) return tmp<0;
else return age<b.age;
}
}

2,最小公约数
#clude<stdio.h>
int gcd(int a ,intb){
while(b!= 0){
int tmp = a%b;
a =b;
b=tmp;
}
return a; //当b为0时,a就为最大公约数了;
}
3,最小公倍数d
d = a * b / gcd(a,b);

4,简单素数的求法
#include<stdio.h>
#include<math.h>
int b = (int)sqrt(x)+1; //根号X +1,要用math.h文件头
for(int i =2;i < b;i++){
if(x %i == 0)
return 0;
}

5素数筛选法
#include<stdio.h>
int buf[10000];
int size;
bool mark[10001];

void init(){
//素数筛选法,求出1到10000的所有素数
for(int i = 1;i< = 10000; i++){
mark[i] = false;
}
size = 0;
for(int i =2;i< = 10000;i++){ //素数的倍数便不是素数,全部置为TRUE,合数字
if(mark[i]==true) continue; //2便是第一个素数,3也是,4就是2的倍数,5也是素数,再依次
buf[size++] = i;
for(int j =2*i ; j<=10000 ; j+=i){
mark[j] = true;
}
}
}
int main(){
init(); //预先把1到10000所有的素数先准备好
int n ;
while(scanf("%d",&n)!=EOF){
//目标代码,找出要求的素数,并按要求输出
}
}

6,二分求幂函数

int power(int a,int b)
{
int ans=1;
while(b!=0)
{
if(b%2==1)
ans*=a; //就是把b二进制化,若i位上是1,则乘上a的i次方
b/=2;
a*=a;
}
return ans;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值