//常用头文件:
#include <iostream>
#include <algorithm>
#include <math.h>
#include <string>
#include <stringstream>
1.整数转换为字符串
#include <iostream>
#include <sstream>
using namespace std;
void i2s(int x, string &str){
stringstream ss;
ss<<x;
ss>>str;
}
2.查找两个字符串(主要用于检测字符串ab中是否有重复元素,如果输入为整数,则可以利用1将整数转换为字符串)
3.快速排序函数
#include <iostream>
using namespace std;
#include <algorithm>
int main(){
int a[9] = {1,3,2,6,9,8,5,4,7};
sort(a,a+9);
for(int i=0;i<9;i++){
cout<<a[i]<<endl;
}
}
4.全排列函数
#include<iostream>
#include<algorithm>
using namespace std;
int ans;
int main(){
int a[4]={1,2,3,4};
sort(a,a+4);
do{
for(int i=0;i<4;i++)
cout<<a[i];
cout<<endl;
ans++;
}while(next_permutation(a,a+4));
cout<<ans;
return 0;
}
5.求两个数的最大公约数
//最小公倍数 = x*y/最大公约数
#include<iostream>
#include<algorithm>
using namespace std;
int ans;
int gcd(int x, int y){
if(y==0) return x;
return gcd(y,x%y);
}
int main(){
int a=24, b=16;
cout<<gcd(a,b)<<endl;
return 0;
}
6.闰年判断
#include<iostream>
#include<algorithm>
using namespace std;
bool isLeapYear(int x){
return(x%4==0&&x%100!=0||x%400==0);
}
int main(){
cout<<isLeapYear(2100)<<endl;
return 0;
}
7.输出n以内的素数
//埃氏筛选法(快速筛选n以内素数的个数)
#include<iostream>
#include<cstring>
using namespace std;
const int N=1e7;
int prime[N]; //第i个素数
bool is_prime[N]; //
int Ans(int n){
int i,j,k;
k = 0;
memset(is_prime, true, sizeof(is_prime));
is_prime[0]=false;
is_prime[1]=false; //0和1不是素数
for(int i=2;i<=n;i++){
if(is_prime[i]){ //当前i是一个素数,则他的倍数都不是素数
prime[k++]=i; // 计算素数的个数并记录素数
for(j=2*i;j<=n;j+=i){ //筛选掉当前素数的倍数的数
is_prime[j] = false;
}
}
}
return k; //返回n以内素数的个数
}
int main(){
int n, i, ans;
while(cin>>n){
ans = Ans(n);
cout<<ans<<endl; //输出素数的个数
for(i = 0; i<ans; i++){
cout<<prime[i]<<endl; //输出素数
}
}
}