C++笔记

想到什么写什么

判断素数 \text{判断素数} 判断素数

bool is_prime_number(int n) {
	bool r=true;
	for(int i=2; i*i<=n; i++) {
		if(n%i==0) {
			r=false;
			break;
		}
	}
	if(n<=1) {
		r=false;
	}
	return r;
}

判断回文数 \text{判断回文数} 判断回文数

bool is_palindrome(int i) {
	int t=i,n=0;
	while(t) {
		n=n*10+t%10;
		t/=10;
	}
	return (i==n);
}

冒泡排序 \text{冒泡排序} 冒泡排序

for(i=1; i<=n-1; i++) {
		for(j=0; j<=n-1-i; j++) {
			if(c[j]>c[j+1]) {
				swap(c[j],c[j+1]);
			}
		}
	}

选择排序 \text{选择排序} 选择排序

for(i=1; i<n; i++) {
		ma=0;
		for(j=1; j<=n-i; j++) {
			if(a[j]>a[ma]) {
				ma=j;
			}
		}
		if(ma!=n-i) {
			swap(a[n-i],a[ma]);
		}
	}

插入排序 \text{插入排序} 插入排序

for(i=1; i<n; i++) {
	for(j=0; j<i; j++) {
		if(a[i]<=a[j]) break;
	}
	if(j!=i)  {
		t1=a[i];
		for(k=i-1; k>=j; k--) {
			a[k+1]=a[k];
		}
		a[j]=t1;
	}
}

桶排序 \text{桶排序} 桶排序

for(int i=0;i<n;i++){
		cin>>k;
		a[k]++;
	}
for(int i=1;i<=1145;i++){
	while(a[i]>0){
		cout<<i<<" ";
		a[i]--;
	}
}

快速排序 \text{快速排序} 快速排序

void quick_sort(int l, int r){
    if(l >= r) return;
    
    int i = l - 1, j = r + 1;
    int x = q[l + r >> 1];
    while(i < j)
    {
        do i++; while(q[i] < x);
        do j--; while(q[j] > x);
        if(i < j) swap(q[i], q[j]);
    }
    quick_sort(l, j);
    quick_sort(j + 1, r);
}

sort \text{sort} sort

/*bool cmp(int a,int b){
	return a
sort(a,a+n);//sort(a,a+n,cmp);

快读 \text{快读} 快读

int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
    return x*f;
}

高精度加 高精度加 高精度加

#include
using namespace std;
string a1,b1;
int a[1145],b[1145,c[1145];
int main()
{
	cin>>a1>>b1;
	for(int i=0;i<a1.size();i++)
	{
		a[i]=a1[a1.size()-i-1]-'0';
	}
	for(int i=0;i<b1.size();i++)
	{
		b[i]=b1[b1.size()-i-1]-'0';
	}
	int len=max(a1.size(),b1.size());
	for(int i=0;i<len;i++)
	{
		c[i]+=a[i]+b[i];
		if(c[i]>=10)
		{
			c[i+1]+=c[i]/10;
			c[i]%=10;
		}
	}
	if(c[len]!=0)len++;
	for(int i=len-1;i>=0;i--)cout<<c[i];
	return 0;
}

高精度乘 高精度乘 高精度乘

#include
using namespace std;
string s1,s2;
int a[1145],b[1145],c[1145],i,j;
int main()
{ 
	int p;
	cin>>s1>>s2;
	for(i=0;i<s1.size();i++)
	{
		a[i]=s1[s1.size()-i-1]-'0';
	}
	for(i=0;i<s2.size();i++)
	{
		b[i]=s2[s2.size()-i-1]-'0';
	}
	for(i=0;i<s1.size();i++)
	{
		for(j=0;j<s2.size();j++)
		{
			c[i+j]=c[i+j]+a[i]*b[j];
			if(c[i+j]>=10)
			{
				c[i+j+1]+=c[i+j]/10;
				c[i+j]%=10;
			}
		}
		
	}
	for(i=s1.size()+s2.size()-1;i>=0;i--)
	{
		if(c[i]!=0){
			p=i;
			break;
		}
	}
	for(i=p;i>=0;i--)
	{
		cout<<c[i];
	}
	return 0;
} 


高精度除 高精度除 高精度除

#include
using namespace std;
int main() {
	int a,b,n,t;
	cin>>a>>b>>n;
	t=a%b;
	cout<<a/b<<'.';
	 for(int i=0;i<n;i++)
	 {
	 	t*=10;
	 	cout<<t/b;
	 	t=t%b;
	 }
	 return 0;
 } 

高精度减 高精度减 高精度减

#include
using namespace std;
string a1,b1;
int a[1145],b[1145],c[1145];
char q='+';
int main()
{
	int p=0;
	cin>>a1>>b1;
	if(a1.size()<b1.size()||(a1.size()==b1.size()&&a1<b1))
	{
		q='-';
		swap(a1,b1);
	}
	for(int i=0;i<a1.size();i++)
	{
		a[i]=a1[a1.size()-i-1]-'0';
	}
	for(int i=0;i<b1.size();i++)
	{
		b[i]=b1[b1.size()-i-1]-'0';
	}
	for(int i=0;i<a1.size();i++)
	{
		if(a[i]<b[i])
		{
			a[i+1]-=1;
			a[i]+=10;
		}
		c[i]=a[i]-b[i];
	}
	if(q=='-')cout<<'-';
	for(int i=a1.size();i>=0;i--)
	{
		if(c[i]!=0)
		{
			p=i;
			break;
		}
	}
	for(int i=p;i>=0;i--)cout<<c[i];
	return 0;
}

你可能感兴趣的:(c++,c++笔记,c++,笔记,算法)