【洛谷算法1-1】模拟与高精度

P1042 [NOIP2003 普及组] 乒乓球 【有意思 / 模拟】

在这里插入图片描述
https://www.luogu.com.cn/problem/P1042
需要注意的是: 那个分数差大于2才结束这一局。例: 11:10 就得继续打 直到例如12:10分差大于2才结束这一局。

#include<cstdio>
#include<iostream>
#include<vector>
#include<string>
#include<cmath>
using namespace std;
char a[103000]; 
vector<string>m,n;
int main(void)
{
	int i=1;
	int score1=0,score2=0,score3=0,score4=0;
	while(cin>>a[i],a[i]!='E') i++;
	for(int j=1;j<i;j++)
	{
		if(a[j]=='W') score1++,score3++;
		else score2++,score4++;
		if((score1>=11||score2>=11)&&abs(score1-score2)>=2)
		{
			string a=to_string(score1);
			a+=":",a+=to_string(score2);
			score1=0,score2=0;
			m.push_back(a);
		}
		if( ( score3>=21||score4>=21 )&&abs(score3-score4)>=2)
		{
			string a=to_string(score3);
			a+=":",a+=to_string(score4);
			score3=0,score4=0;
			n.push_back(a);
		}
	}
	//处理最后一次 11赛制 
	string a=to_string(score1);
	a+=":",a+=to_string(score2);
	score1=0,score2=0;
	m.push_back(a);
	//处理最后一次 21赛制 
	a.clear(); 
	a=to_string(score3);
	a+=":",a+=to_string(score4);
	score3=0,score4=0;
	n.push_back(a);
	
	for(int i=0;i<m.size();i++) cout<<m[i]<<endl;
	cout<<endl;
	for(int i=0;i<n.size();i++) cout<<n[i]<<endl;
	return 0;
}

P2670 [NOIP2015 普及组] 扫雷游戏 【dfs / 模拟】

在这里插入图片描述
https://www.luogu.com.cn/problem/P2670

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
char mp[105][105];
int vis[105][105];
int dx[8]={-1,0,1,0,-1,-1,1,1};
int dy[8]={0,1,0,-1,-1,1,-1,1};
int ans;
int n,m; 
void dfs(int x,int y)
{
	for(int i=0;i<8;i++)
	{
		int tempx=x+dx[i];
		int tempy=y+dy[i];
		if(tempx<0||tempx>=n||tempy<0||tempy>=m) continue;
		if(mp[tempx][tempy]=='*') ans++;
	}
}
int main(void)
{
	cin>>n>>m;
	for(int i=0;i<n;i++)	
		for(int j=0;j<m;j++)
			cin>>mp[i][j];
			
	for(int i=0;i<n;i++)	
	{
		for(int j=0;j<m;j++)
		{
			if(mp[i][j]=='?')
			{
				ans=0;
				dfs(i,j);
				vis[i][j]=ans;
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(mp[i][j]=='*') cout<<mp[i][j];
			else cout<<vis[i][j];
		}
		cout<<endl;
	}
	return 0;
}

P1563 [NOIP2016 提高组] 玩具谜题 【模拟 / 循环取余】

在这里插入图片描述
https://www.luogu.com.cn/problem/P1563

#include<cstdio>
#include<iostream>
using namespace std;
struct student
{
	string name;
	int d;
}stu[100005];
int main(void)
{
	int n,m;cin>>n>>m;
	for(int i=0;i<n;i++) cin>>stu[i].d>>stu[i].name; 
	int ans=0;
	while(m--)
	{
		int a,s; cin>>a>>s;//0左 1右 
		//外
		if(stu[ans].d)  
			if(a) ans=(n+ans-s)%n;//右 
			else  ans=(ans+s)%n;//左 
		//内
		else
			if(a) ans=(ans+s)%n;//右 
			else  ans=(n+ans-s)%n;//左 
	}
	cout<<stu[ans].name<<endl; 
	return 0;
}

P1601 A+B Problem(高精加)

在这里插入图片描述
https://www.luogu.com.cn/problem/P1601

#include<cstdio>
#include<string>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
vector<int>A,B,C; 
vector<int> add(vector<int> &A,vector<int> &B)
{
	vector<int> C; int t=0;
	for(int i=0;i<A.size()||i<B.size();i++)
	{
		if(i<A.size()) t+=A[i];
		if(i<B.size()) t+=B[i];
		C.push_back(t%10);
		t/=10;
	}
	if(t) C.push_back(1);
	return C;
}
int main(void)
{
	string a,b; cin>>a>>b;
	for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
	for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');
	C=add(A,B);
	for(int i=C.size()-1;i>=0;i--) cout<<C[i];
	cout<<endl;
	return 0;
} 

P1303 A*B Problem(高精度乘)

在这里插入图片描述

#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<int>A,B,C;
vector<int> mul(vector<int> &A,vector<int> &B)
{
	int t=0; vector<int> C;
	C.push_back(0);//目的是容器里初始化
	for(int j=0;j<B.size();j++)
	{
		for(int i=0;i<A.size();i++)
		{
			C.push_back(0);
			C[i+j]+=A[i]*B[j];
		}
	}
	for(int i=0;i<C.size();i++)//处理进位
	{
		if(C[i]>=10)
		C[i+1]+=C[i]/10,C[i]=C[i]%10;
	} 
	while(C.size()>1&&C.back()==0) C.pop_back();//处理前导零
	return C;
}
int main(void)
{
	string a,b; cin>>a>>b;
	for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
	for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');
	C=mul(A,B);
	for(int i=C.size()-1;i>=0;i--) cout<<C[i];
	cout<<endl;
	return 0;
} 

P1009 [NOIP1998 普及组] 阶乘之和

在这里插入图片描述
https://www.luogu.com.cn/problem/P1009

#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
vector<int>A,C; 
vector<int> add(vector<int> &A,vector<int> &B)
{
	vector<int> C; int t=0;
	for(int i=0;i<A.size()||i<B.size();i++)
	{
		if(i<A.size()) t+=A[i];
		if(i<B.size()) t+=B[i];
		C.push_back(t%10);
		t/=10;
	}
	if(t) C.push_back(1);
	return C;
}
vector<int> mtl(vector<int> &A,int b)
{
	vector<int> C; int t=0;
	for(int i=0;i<A.size()||t;i++)
	{
		if(i<A.size()) t+=A[i]*b;
		C.push_back(t%10);
		t/=10;
	}
	while(C.size()>1&&C.back()==0) C.pop_back();
	return C;
}
int main(void)
{
	int n;cin>>n;
	A.push_back(1);
	for(int i=1;i<=n;i++)
	{
		A=mtl(A,i);
		C=add(A,C); 
	}
	for(int i=C.size()-1;i>=0;i--) cout<<C[i];
	cout<<endl;
	return 0;
}

P4924 [1007]魔法少女小Scarlet 【模拟】

在这里插入图片描述
https://www.luogu.com.cn/problem/P4924

#include<cstdio>
#include<iostream>
using namespace std;
int a[505][505];
int b[505][505];
int main(void)
{
	int n,m; cin>>n>>m;
	int sum=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			a[i][j]=sum;
			b[i][j]=a[i][j];
			sum++;
		}
	}
	while(m--)
	{
		int x,y,r,z;
		cin>>x>>y>>r>>z;
		int R=2*r+1;
		x=x-r,y=y-r;//左上角的坐标
		if(z)//逆时针 
		{
			int w1=x+2*r;//右下角的坐标
			int w2=y+2*r;//
			int temp1=w1;
			int temp2=w2;
			
			for(int i=x;i<=w1;i++) 
			{
				temp1=x;
				for(int j=y;j<=w2;j++)
				{
					b[i][j]=a[temp1++][temp2];
				}
				temp2--;
			}
			for(int i=x;i<=w1;i++)//复制 
			{
				for(int j=y;j<=w2;j++)
				{
					a[i][j]=b[i][j];
				}
			}
		}
		else//顺时针 
		{
			int w1=x+2*r;
			int w2=y+2*r;
			int temp1=w1;
			int temp2=y;
			for(int i=x;i<=w1;i++)//顺时针 
			{
				temp1=w1;
				for(int j=y;j<=w2;j++)
				{
					b[i][j]=a[temp1--][temp2];
				}
				temp2++;
			}
			for(int i=x;i<=w1;i++)//复制 
			{
				for(int j=y;j<=w2;j++)
				{
					a[i][j]=b[i][j];
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cout<<a[i][j]<<" ";
		cout<<endl; 
	}
	return 0;
} 

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

在这里插入图片描述
https://www.luogu.com.cn/problem/P1328

#include<cstdio>
#include<iostream>
using namespace std;
int a[205],b[205];
int main(void)
{
	int N,NA,NB;
	cin>>N>>NA>>NB;
	for(int i=0;i<NA;i++) cin>>a[i];
	for(int i=0;i<NB;i++) cin>>b[i];
	int s1=0,s2=0;
	int score1=0,score2=0;
	while(N--)
	{
		bool flag=false;
		if(s1==NA) s1=0;
		if(s2==NB) s2=0;
		if(a[s1]==b[s2])
		{
			s1++,s2++;
			continue;
		}
		if(a[s1]==0&&(b[s2]==2||b[s2]==3)) score1++,flag=true; //剪刀 
		if(a[s1]==1&&(b[s2]==0||b[s2]==3)) score1++,flag=true;//石头 
		if(a[s1]==2&&(b[s2]==1||b[s2]==4)) score1++,flag=true;//布 
		if(a[s1]==3&&(b[s2]==2||b[s2]==4)) score1++,flag=true;//蜥蜴人 
		if(a[s1]==4&&(b[s2]==0||b[s2]==1)) score1++,flag=true;//斯波特 
		if(!flag) score2++;
		s1++,s2++; 
	}
	cout<<score1<<" "<<score2<<endl;;
	return 0;
}

P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two

在这里插入图片描述
https://www.luogu.com.cn/problem/P1518

题解: 跟蛇形数组差不多一样,不过是同时进行两个罢了,再加一点特判。

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
string a[15];
int dx[4]={-1,0,1,0};//上,右,下,左 
int dy[4]={0,1,0,-1};
int ans;
int startx,starty,endx,endy;
bool flag=false;
int main(void)
{
	for(int i=0;i<10;i++) cin>>a[i];
	for(int i=0;i<10;i++)
	{
		for(int j=0;j<10;j++)
		{
			if(a[i][j]=='C') startx=i,starty=j;
			if(a[i][j]=='F') endx=i,endy=j;
		}
	}
	int d1=0;
	int d2=0;
	while(1)
	{
		if(ans>=1000) break;
		if(startx==endx&&starty==endy) 
		{
			flag=true;
			break;
		}
		int tempx=startx+dx[d1];
		int tempy=starty+dy[d1];
		if(tempx<0||tempx>=10||tempy<0||tempy>=10||a[tempx][tempy]=='*') d1=(d1+1)%4;//撞墙改方向
		else startx=tempx,starty=tempy;
		tempx=endx+dx[d2];
		tempy=endy+dy[d2];
		if(tempx<0||tempx>=10||tempy<0||tempy>=10||a[tempx][tempy]=='*') d2=(d2+1)%4;//撞墙改方向
		else endx=tempx,endy=tempy;
		ans++;
	}
	if(flag)cout<<ans<<endl;
	else cout<<0<<endl;
	return 0;
}

P1067 [NOIP2009 普及组] 多项式输出 【模拟 / 细节】

在这里插入图片描述
https://www.luogu.com.cn/problem/P1067

#include<cstdio>
#include<iostream>
using namespace std;
int a[105];
int main(void)
{
	int n; cin>>n;
	for(int i=0;i<n+1;i++) cin>>a[i];
	bool flag=false;
	int cnt=-1;
	for(int i=0;i<n+1;i++)
	{
		if(a[i]&&i!=n) 
		{
			cnt++;
			if(cnt&&a[i]>0)cout<<"+";// 说明前面有不为0的系数且当前是正系数,那么在前面输入一个+号
			if(a[i]>1) printf("%dx",a[i]),flag=true;
			if(a[i]==1) printf("x"),flag=true;
			if(a[i]<0) 
			{
				if(a[i]==-1)
				printf("-x");
				else
				printf("%dx",a[i]);
				flag=true;
			}
			if((n-i)!=1) printf("^%d",n-i);//x的系数不为1,输出x的系数
		}	
		if(i==n&&a[i]!=0)//最后一个数,且不为0.为0的话直接不输出就行了
		{
			if(cnt>=0)//前面有不为0的系数
				if(a[i]<0) 
				{
					printf("%d",a[i]);
					flag=true;
				}
				else cout<<"+"<<a[i],flag=true;
			else//前面的系数都是零那么不需要+ 号
				if(a[i]<0) 
				{
					printf("%d",a[i]);
					flag=true;
				}
				else cout<<a[i],flag=true;
		}
	}
	if(!flag) cout<<0<<endl;
	return 0;
}

P1098 [NOIP2007 提高组] 字符串的展开 【模拟】

在这里插入图片描述
https://www.luogu.com.cn/problem/P1098

#include<cstdio>
#include<iostream>
#include<string> 
using namespace std;
string a,ans; 
int main(void)
{
	int p1,p2,p3; cin>>p1>>p2>>p3;
	cin>>a;
	for(int i=0;i<a.size();i++)
	{
		if(i==0||i==a.size()-1||a[i]!='-')//开头结尾不用管,不是减号的不用管 
		{
			ans+=a[i]; continue;
		}
		if((a[i+1]-a[i])==1)//连着的
			{
				ans+='-';
				ans+=a[i+1];
				i++;
				continue;
			}
			if(a[i-1]>=a[i+1])//左大于右 
			{
				ans+='-';
				ans+=a[i+1];
				i++;
				continue;
			} 
		
		if( (a[i-1]>='a'&&a[i+1]>='a') || (a[i-1]>='0'&&a[i-1]<='9'&&a[i+1]>='0'&&a[i+1]<='9') )
		//减号两边是数字的,减号两边是字母
		{
			if(p1==1)//小写 
			{
				if(p3==1)//正序 
				{
					int n=a[i+1]-a[i-1];
					int temp=p2;
					for(int j=1;j<n;j++)
					{
						temp=p2;
						while(temp--) 
						{
							ans+=tolower(a[i-1]+j);
						}
					} 
				} 
				else//逆序 
				{
					int n=a[i+1]-a[i-1];
					int temp=p2;
					for(int j=n-1;j>=1;j--)
					{
						temp=p2;
						while(temp--) 
						{
							ans+=tolower(a[i-1]+j);
						}
					} 
				} 
			}
			
			if(p1==2)//大写 
			{
				if(p3==1)//正序 
				{
					int n=a[i+1]-a[i-1];
					int temp=p2;
					for(int j=1;j<n;j++)
					{
						temp=p2;
						while(temp--) 
						{
							ans+=toupper(a[i-1]+j);
						}
					}	
				} 
				else//逆序 
				{
					int n=a[i+1]-a[i-1];
					int temp=p2;
					for(int j=n-1;j>=1;j--)
					{
						temp=p2;
						while(temp--) 
						{
							ans+=toupper(a[i-1]+j);
						}
					} 
				} 
			}
			if(p1==3)
			{
				int n=a[i+1]-a[i-1];
				int temp=p2;
				for(int j=n-1;j>=1;j--)
				{
					temp=p2;
					while(temp--) 
					{
						ans+="*";
					}
				} 
			}
		}
		else
		{
			ans+='-';
			ans+=a[i+1];
			i++;
			continue;
		}
	}
	cout<<ans<<endl;
	return 0;
}

P1786 帮贡排序

在这里插入图片描述
https://www.luogu.com.cn/problem/P1786

#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;

struct student
{
	string name;
	string a;
	int money;
	int level;
	int id;
}st,stu[120];
vector<student>a,b,c,d,e,f,g;
//帮主,两位副帮主,两位护法,四位长老,七位堂主,二十五名精英,帮众
int c1=2,d1=4,e1=7,f1=25;
bool cmp(student a,student b)//帮贡排序 
{
	if(a.money==b.money)
		return a.id<b.id;
	return a.money>b.money;
}

bool cmp1(student a,student b)//等级排序 
{
	if(a.level==b.level)
		return a.id<b.id;
	return a.level>b.level;
}
int main(void)
{
	int n; cin>>n;
	int m=0;
	for(int i=0;i<n;i++)
	{
		cin>>st.name>>st.a>>st.money>>st.level;
		st.id=i;
		if(st.a=="BangZhu") a.push_back(st);//帮主 
		if(st.a=="FuBangZhu") b.push_back(st);//副帮主 
		if(st.a!="BangZhu"&&st.a!="FuBangZhu") stu[m++]=st;	
	} 
	sort(stu,stu+m,cmp);//帮贡排序 
	for(int i=0;i<m;i++)
	{
		if(c1>=1) 
		{
			stu[i].a="HuFa",c.push_back(stu[i]),c1--;
			continue;
		}
		if(d1>=1)
		{
			stu[i].a="ZhangLao",d.push_back(stu[i]),d1--;
			continue;
		} 
		if(e1>=1) 
		{
			stu[i].a="TangZhu",e.push_back(stu[i]),e1--;
			continue;
		}
		if(f1>=1)
		{
			stu[i].a="JingYing",f.push_back(stu[i]),f1--;
			continue;
		} 
		stu[i].a="BangZhong",g.push_back(stu[i]);
	}
	sort(b.begin(),b.end(),cmp1);
	sort(c.begin(),c.end(),cmp1);
	sort(d.begin(),d.end(),cmp1);
	sort(e.begin(),e.end(),cmp1);
	sort(f.begin(),f.end(),cmp1);
	sort(g.begin(),g.end(),cmp1);
	if(a.size())
	for(int i=0;i<a.size();i++) cout<<a[i].name<<" "<<a[i].a<<" "<<a[i].level<<endl;
	if(b.size())
	for(int i=0;i<b.size();i++) cout<<b[i].name<<" "<<b[i].a<<" "<<b[i].level<<endl;
	if(c.size())
	for(int i=0;i<c.size();i++) cout<<c[i].name<<" "<<c[i].a<<" "<<c[i].level<<endl;
	if(d.size())
	for(int i=0;i<d.size();i++) cout<<d[i].name<<" "<<d[i].a<<" "<<d[i].level<<endl;
	if(e.size())
	for(int i=0;i<e.size();i++) cout<<e[i].name<<" "<<e[i].a<<" "<<e[i].level<<endl;
	if(f.size())
	for(int i=0;i<f.size();i++) cout<<f[i].name<<" "<<f[i].a<<" "<<f[i].level<<endl;
	if(g.size())
	for(int i=0;i<g.size();i++) cout<<g[i].name<<" "<<g[i].a<<" "<<g[i].level<<endl;
	return 0;
}

P1591 阶乘数码 【高精度乘法】

在这里插入图片描述
https://www.luogu.com.cn/problem/P1591

#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<int> mtl(vector<int> &A,int b)
{
	int t=0; vector<int> C;
	for(int i=0;i<A.size()||t;i++)
	{
		if(i<A.size()) t+=A[i]*b;
		C.push_back(t%10);
		t/=10;
	}
	while(C.size()>1&&C.back()==0) C.pop_back();
	return C;
}
int main(void)
{
	int t; cin>>t;
	while(t--)
	{
		int n,a; cin>>n>>a;
		vector<int> A; A.push_back(1);
		for(int i=1;i<=n;i++)
		{
			A=mtl(A,i);
		}
		int ans=0;
		for(int i=0;i<A.size();i++) if(a==A[i]) ans++;
		cout<<ans<<endl;
	} 
	return 0;
} 

P1249 最大乘积 【贪心 / 高精度 / 特别的有意思】

在这里插入图片描述
https://www.luogu.com.cn/problem/solution/P1249?page=1

本题的关键在于贪心,如何分解是本题的关键。
我们从 2开始一直枚举,如果枚举到余数 ,比上一个的因子还小于等于。那么此时就将此时的余数分配。
给我们已经确定的因子挨个的加1.先给大数加1 再给小的数加1,直到余数为0.
例: 10
2 3 4 此时余1 不能再把5选了。 那么此时把余数从后往前依次的分配1,循环直到分配完。
2 3 4+1 分配完了结束 此时最优解为 2 3 5

#include<cstdio>
#include<iostream>
#include<vector>
#include<string>
using namespace std;
vector<int>A,C;
vector<int> mtl(vector<int> &A,int b)
{
	int t=0; vector<int> C;
	for(int i=0;i<A.size()||t;i++)
	{
		if(i<A.size()) t+=A[i]*b;
		C.push_back(t%10);
		t/=10;
	}
	while(C.size()>1&&C.back()==0) C.pop_back();
	return C;
}
int main(void)
{
	int n; cin>>n;
	C.push_back(1);
	int s=0;
	for(int i=2;i<=10005;i++)
	{
		if( (n-i)<=i)
		{
			n=n-i;
			A.push_back(i);
			break;
		}
		A.push_back(i);
		n=n-i;
	}
	int startx=A.size()-1;
	while(n--)//将余数分配  按给大数到小数的方式循环分配,直到分配完
	{
		A[startx--]++;
		if(startx<0)
		{
			startx=A.size()-1;
		}
	}
	for(int i=0;i<A.size();i++)
	{
		cout<<A[i]<<" ";
		C=mtl(C,A[i]);
	}
	cout<<endl;
	for(int i=C.size()-1;i>=0;i--) cout<<C[i];
	return 0;
}

P1045 [NOIP2003 普及组] 麦森数 【经典中的经典】

在这里插入图片描述
https://www.luogu.com.cn/problem/P1045

题解: 本题可是卡了我好久,本题考察的知识点真的不少。
首先有高精度的乘法,高精度的减法,快速幂,和数学的换底公式。
首先我们要知道,数据范围十分的大,故我们再算该精度乘法的时候只要后500位就行了。
所以我们还得单独的算数据的位数。

题解第一的大佬写的,我就不造轮子了
在这里插入图片描述

#include<cstdio>
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
vector<int> ve;
vector<int> A;
vector<int> mul(vector<int> A,vector<int> B)//乘法 
{
	vector<int> C; int t=0;
	C.push_back(0);
	for(int i=0;i<A.size();i++)
	{
		for(int j=0;j<B.size();j++)
		{
			C.push_back(0);
			C[i+j]+=A[i]*B[j]; 
		}
	}
	for(int i=0;i<C.size();i++)
	{
		if(C[i]>=10) C[i+1]+=C[i]/10;C[i]%=10;
	}
	while(C.size()>1&&C.back()==0) C.pop_back();
	while(C.size()>500) C.pop_back();//只要最后的500位
	return C;
}
vector<int> f(int a,int b)//快速幂 
{
	vector<int> C; C.push_back(1); 
	vector<int> A; A.push_back(2);
	while(b)
	{
		if(b&1) C=mul(C,A); 
		b=b>>1;
		A=mul(A,A);
	}
	return C;
}
vector<int> sub(vector<int> A,int b) //减法
{
	int t=1; vector<int> C;
	for(int i=0;i<A.size();i++)
	{
		t=A[i]-t;
		C.push_back((t+10)%10);
		if(t<0) t=1;
		else t=0;
	}
	while (C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}
int main(void)
{
	int a; cin>>a;
	vector<int> C=f(2,a);
	C=sub(C,1);
	cout<<(int)(log10(2)*a+1)<<endl;
	if(C.size()>=500) 
	{
		int k=0;
		for(int i=499;i>=0;i--) 
		{
			cout<<C[i],k++;
			if(k==50) cout<<endl,k=0;
		}
	}
	else
	{
		int temp=500-C.size();//不足500补一些零
		int k=0;
		for(int i=1;i<=temp;i++)
		{
			cout<<0,k++;
			if(k==50) cout<<endl,k=0;
		}
		for(int i=C.size()-1;i>=0;i--)
		{
			cout<<C[i],k++;
			if(k==50) cout<<endl,k=0;
		}
	}
	return 0;
} 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值