蓝桥杯集锦

基础练习 特殊回文数
网址:
#include #include #include#include using namespace std;int main(){int n;int x=0;int a[110];scanf("%d",&n);for(int i=0;i<=9;i++)//注意是从0开始 , 开始从1开始,WR了好多次for(int j=10;j<=99;j++)if((j/10+j)*2+i==n)a[x++]=(j*10+i)*100+j*10+j/10 ;for(int i=100;i<=999;i++)if((i/100+i0/10+i)*2==n)a[x++]=i*1000+i*100+i0/10*10+i/100 ;sort(a,a+x); for(int i=0;i
杨辉三角:
#include #include #include #include #include#include using namespace std;int main(){int a[35][35],n;memset(a,0,sizeof(a));a[0][1]=1;scanf("%d",&n);for(int i=1;i<=n;i++) {for(int j=1;j<=i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];cout<
查找整数网址:
#include #include #include #include using namespace std;int main(){int x,n;scanf("%d",&n);vector v;//要查找的元素,类型要与vector<>类型一致for(int i=0;i::iterator iter=std::find(v.begin(),v.end(),x);//返回的是一个迭代器指针if(iter==v.end())cout<<-1;else//注意迭代器指针输出元素的方式和distance用法cout<< distance(v.begin(), iter)+1 ;return 0;}
基础练习 字母图形:
#include #include #include #include #include#include using namespace std;int main(){int m,n;cin>>m>>n;string str="";for(int i=0;i
开始的时候理解错题意了,WR了好几次
48b81bf88dbae7749283bb8d6d510384
基础练习 01字串(这道题挺好的知识点)
#include #include #include #include #include#include using namespace std;int main(){for(int i=0;i<32;i++){char s[10];itoa(i, s, 2);//转换成字符串 , 进制基数为2,i转化为注意是整型和字符数组之间的转化 string str(s);//转化为string类型 int number = atoi(str.c_str());printf("d\n",number);//输出控制格式0代表空位补零,5代表限制为5位,如果小于五位,通过补零形式满足,超过五位则失去作用 }return 0;}
另解:开始的时候不知道字符串也能填充(填充其他字符现在还不清楚 , 但是填充0为如下)
#include #include #include #include #include#include using namespace std;int main(){for(int i=0;i<32;i++){char s[10];itoa(i, s, 2);//转换成字符串,进制基数为2,i转化为注意是整型和字符数组之间的转化 printf("s\n",s);}return 0;}
算法训练 问题(大小写转化)
#include #include #include #include #include#include using namespace std;int main(){char ch1[100],ch2[100];cin>>ch1>>ch2;int x;if((x=strlen(ch1))!=strlen(ch2))cout<<"N";strlwr(ch1);//将大写转化为小写 网址:http://blog.csdn.net/u014665013/article/details/37994597 strlwr(ch2);int a[30]={0},b[30]={0};for(int i=0;i
算法训练 出现次数最多的整数
(我也是醉了,好像还有n=0这样的测试数据 , 这还WR,好好读题)
#include #include #include #include #include#include using namespace std;int main(){int n;cin>>n;int a,b,mark,count=1,temp=1;int x=n;if(x>0)cin>>a;n--;mark=a;while((n--)>0){cin>>b;if(a==b){temp++;if(temp>count){mark=b;count=temp;}}elsetemp=1;a=b; }if(x>0)cout<
算法训练 字串统计(含字符串的部分截?。?
网址:
#include #include #include #include #include#include using namespace std;int main(){int n;cin>>n;string str,mark="";cin>>str;string temp[65];int len=str.length(),markcishu=0,tempcishu;for(int i=n;i<=len;i++){int j=0;for(j=0;j+i<=len;j++)//截取字串 j为起始位置, {temp[j] = str.substr(j,i);// cout<<"temp["<mark.length()&&tempcishu==markcishu)){//注意条件markcishu=tempcishu;mark=temp[x]; } }}cout<
算法训练 矩阵乘法
网址:
#include #include #include #include #include#include using namespace std;int main(){int n,m,s;cin>>m>>s>>n;int a[205][205], b[205][205],temp=0;for(int i=1;i<=m;i++)for(int j=1;j<=s;j++)scanf("%d",&a[i][j]);for(int i=1;i<=s;i++)for(int j=1;j<=n;j++)scanf("%d",&b[i][j]);for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){for(int x=1;x<=s;x++)temp=temp+a[i][x]*b[x][j];printf("%d ",temp);temp=0;} printf("\n");}return 0;}
算法训练 大小写转换网址:
#include #include #include #include #include#include using namespace std;int main(){string str;//cout<>str;int len = str.length();for(int i=0;i='A')str[i]=char(str[i]+32);elsestr[i]=str[i]-32;}cout<
算法训练 动态数组使用网址:
#include #include #include #include #include#include using namespace std;int main(){int n,sum=0;scanf("%d",&n);int * array=(int*)calloc(n,sizeof(int));for(int i=0;i>array[i];sum=sum+array[i];}cout<
算法训练 最小乘积(基本型)网址:
#include #include #include #include #include#include using namespace std;bool cmp(int a,int b){return a>b;} int main(){int n; scanf("%d",&n);for(int i=0;i>a[j];for(int j=0;j>b[j];sort(a,a+x);sort(b,b+x,cmp);for(int j=0;j

蓝桥杯集锦

文章插图
算法训练 Torry的困惑(基本型) 网址:
//前n项素数求积对50000取模 #include #include #include #include #include#include using namespace std;#define N 1300000bool isprm[N];void isprime(){int i,j,k=0;int s,e=sqrt( double(N) )+1;//sqrt是对于double数开平方memset(isprm,1,sizeof(isprm));//prm[k++]=2;isprm[0] = isprm[1] = 0;for(i=4 ;i < N; i=2+i)isprm[i]=0;for(i=3;in;isprime();int j=0;for(int i=0;j
算法训练 关联矩阵 网址:
//前n项素数求积对50000取模 #include #include #include #include #include#include using namespace std;int main (){int m,n,a[105][1005]={0};cin>>m>>n;int x,y;for(int i=1;i<=n;i++){scanf("%d%d",&x,&y);a[y][i]=-1;a[x][i]=1;}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)cout<
算法训练 区间k大数查询
网址:
#include #include #include #include #include#include using namespace std;int main(){int n,a[1005],x,temp[1005],l,r,k;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);scanf("%d",&x);for(int i=1;i<=x;i++){int count=0;scanf("%d%d%d",&l,&r,&k); for(int j=l;j<=r;j++){temp[count++]=a[j];// cout<
算法提高 6-17复数四则运算(写这样简单但是需要先总结对公式)
网址 :
#include #include #include #include #include#include using namespace std;int main(){double x1,x2,y1,y2,y3,x3;char ch;cin>>x1>>y1>>ch>>x2>>y2;if(ch=='+')x3=x1+x2,y3=y1+y2;else if(ch=='-')x3=x1-x2,y3=y1-y2;else if(ch=='*')x3=x1*x2-y1*y2,y3=x1*y2+y1*x2;elseif(ch=='/')if(x2*x2+y2*y2==0){cout<<"error";return 0;}elsex3=(x1*x2+y1*y2)/(x2*x2+y2*y2),y3=(y1*x2-x1*y2)/(x2*x2+y2*y2);else{cout<<"error";return 0;}if(x3==0&&y3==0){cout<<0;return 0;}if(x3!=0)cout<0)cout<<'+'<
算法提高 约数个数(不是完全循环,还是有点小技巧的)
网址:
#include #include #include #include #include#include using namespace std;int main(){int n;cin>>n;int count=0;for(int i=1;i<=sqrt(double(n));i++){if(n%i==0)count++; } if(sqrt(double(n))-int(sqrt(double(n)))==0)cout<<2*count-1;elsecout<<2*count;return 0;}
历届试题 分糖果 网址:
#include #include #include #include #include#include using namespace std;int main (){int n,a[105],b[105];cin>>n;for(int i=0;i
历届试题 兰顿蚂蚁 网址:
【蓝桥杯集锦】#include #include #include #include #include#include using namespace std;int main (){int n,m;bool a[105][105];cin>>m>>n;for(int i=0;ich>>find;for(int i=1;i<=find;i++){if(a[row][list]==1){a[row][list]=0;if(ch=='U'){ch='R'; list++;}else if(ch=='R'){ch='D'; row++; }else if(ch=='D'){ch='L';list-- ;}else{ch='U';row--;}}else{a[row][list]=1;if(ch=='U'){ch='L';list-- ;} else if(ch=='R'){ch='U';row--;} else if(ch=='D'){ch='R'; list++;}else {ch='D'; row++; }}}cout<