前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >暑假(补)-1

暑假(补)-1

作者头像
AngelNH
发布2020-04-16 11:08:26
3160
发布2020-04-16 11:08:26
举报
文章被收录于专栏:AngelNI

1.sort()

(1) 数组

代码语言:javascript
复制
#include<algorithm>
#include<iostream>
using namespace std;
bool cmp(stu a,stu b)
{
	return a < b ; //从小到大;
	return a > b ;//从大到小; 
}
int main()
{
	int a[10]={1,5,6,8,10,22,-5,99,100,-5}
	sort(a,a+10);
	return 0;
 }

(2)结构体

代码语言:javascript
复制
#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
struct stu
{
	int id;
	char name[20];
	char sex[10];
}student[10];
bool cmp(stu a,stu b)
{
	return a.id < b.id ; //从小到大;
	return a.id > b.id ;//从大到小; 
}
int main()
{
	student[0].id = 10;
	student[1].id = 8;
	student[2].id = 1;
	student[3].id = 9;
	sort(student,student+4,cmp);
	for(int i=0;i<4;i++)
	{
		printf("%d\n",student[i].id);
	}
	printf("%d",student[0].id);
	return 0;
 }

(3)数据类型排序

代码语言:javascript
复制
#include<stdio.h>
#include<iostream>
#include<algorithm>
//#include<functional> 
using namespace std;
int main()
{
	int a[10]={1,10,8,11,20,0,-9,85,21,3};
	char b[10] = {'b','a','z','e','t','s','p','f','o','h'};
	sort(a,a+10,less<int>());
	sort(a,a+10,greater<int>());
	sort(b,b+10,greater<char>());
	for(int i=0;i<10;i++)
		cout<<a[i]<<endl;
	for(int i=0;i<10;i++)
		cout<<b[i]<<endl;
	return 0;
 }

2.GCD

GCD是求最大公约数,有两种方法:1.自己构建函数。2.头文件中的__gcd()函数.

代码语言:javascript
复制
#include<stdio.h>
#include<iostream>
#include<algorithm> 
using namespace std;
/*
int gcd(int a,int b)
{
	return b ? gcd(b,a%b) : a;
}*/

int main()
{
	int a,b;
	cin>>a>>b;
	cout<<__gcd(a,b)<<endl;
	return 0;
 }

3.LCM

LCM求最小公倍数,其实掌握了GCD,就简单的多了。

代码语言:javascript
复制
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int a,int b)
{
	return b ? gcd(b,a%b) : a ;
 } 
int main()
{
	int a,b;
	cin>>a>>b;
	cout<<(a*b)/gcd(a,b)<<endl;
	cout<<(a*b)/__gcd(a,b)<<endl;
	return 0;
 }

4.素数打表

素数打表根据比埃拉托斯特尼筛法,如果感兴趣,可以去找度娘。

代码语言:javascript
复制
#include<stdio.h>
#include<iostream>
#include<algorithm>
//#include<cstring>
//#include<string.h>
using namespace std;
int main()
{	
	int prim[1016];
	memset(prim,0,sizeof(int)*1016);
	prim[1]=1;
	for(int i=2;i*i<1016;i++)
	{
		if(!prim[i]) for(int j=i*i;j<1016;j+=i)
			prim[j]=1; 
	}
	for(int i=1;i<1016;i++)
	{
		cout<<i<<'\t';
		cout<<prim[i]<<endl;
	}
	int count = 0;
	for(int i=1;i<1016;i++)
	{
		if(prim[i]==0)
			count++;
	}
	cout<<count<<endl;
	return 0;
}

5.快速幂取模

快速幂取模,为了解决大数取模问题吧。

代码语言:javascript
复制
#include<stdio.h>
typedef long long ll;
#define MOD 1000000007
ll pow_mod(ll a,ll n)
{
	ll res =1;
	while(n)
	{
		if(n&1) res =res* a%MOD;
		a=a*a%MOD; 
		n>>=1; 
	}
	return res;
}
int main()
{
	int a = 4;
	int b = 6;
	printf("%d",pow_mod(a,b)); 
	return 0;
 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-09|,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (1) 数组
  • (2)结构体
  • (3)数据类型排序
  • 2.GCD
  • 3.LCM
  • 4.素数打表
  • 5.快速幂取模
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档