蓝桥杯.docx

上传人:b****6 文档编号:8656341 上传时间:2023-02-01 格式:DOCX 页数:41 大小:825.96KB
下载 相关 举报
蓝桥杯.docx_第1页
第1页 / 共41页
蓝桥杯.docx_第2页
第2页 / 共41页
蓝桥杯.docx_第3页
第3页 / 共41页
蓝桥杯.docx_第4页
第4页 / 共41页
蓝桥杯.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

蓝桥杯.docx

《蓝桥杯.docx》由会员分享,可在线阅读,更多相关《蓝桥杯.docx(41页珍藏版)》请在冰豆网上搜索。

蓝桥杯.docx

蓝桥杯

入门训练部分:

A+B问题

#include

intmain()

{

inta,b;

scanf("%d%d",&a,&b);

printf("%d",a+b);

return0;

}

序列求和

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

longlongn;

scanf("%I64d",&n);

printf("%I64d\n",(n+1)*n/2);

return0;

}

圆的面积

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intr;

scanf("%d",&r);

printf("%.7f",3.14159265358979323*r*r);

return0;

}

Fibonacci数列

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

inta=1,b=1,n,num;

scanf("%d",&n);

if(n==1||n==2)

{

printf("1\n");

return0;

}

else

{

for(inti=3;i<=n;i++)

{

num=(a+b)%10007;

a=b;

b=num;

}

printf("%d\n",num);

}

return0;

}

基础练习部分:

闰年判断

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intn;

scanf("%d",&n);

if(n%400==0||n%4==0&&n%100!

=0)

printf("yes\n");

else

printf("no\n");

return0;

}

01字串

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

for(inta=0;a<=1;a++)

for(intb=0;b<=1;b++)

for(intc=0;c<=1;c++)

for(intd=0;d<=1;d++)

for(inte=0;e<=1;e++)

printf("%d%d%d%d%d\n",a,b,c,d,e);

return0;

}

字母图形

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intn,m;

scanf("%d%d",&n,&m);

for(inti=1;i<=n;i++)

{

for(intj=1;j<=m;j++)

putchar(abs(i-j)+'A');

putchar(10);

}

return0;

}

数列特征

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intn,temp,maxx,minn,sum=0;

scanf("%d",&n);

for(inti=1;i<=n;i++)

{

scanf("%d",&temp);

if(i==1)

{

maxx=minn=temp;

}

if(temp>maxx)

maxx=temp;

if(temp

minn=temp;

sum+=temp;

}

printf("%d\n%d\n%d\n",maxx,minn,sum);

return0;

}

查找整数

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intarr[1005];

intmain()

{

intn,temp;

scanf("%d",&n);

for(inti=0;i

scanf("%d",&arr[i]);

scanf("%d",&temp);

intseat=-1;

for(inti=0;i

if(arr[i]==temp)

{

seat=i+1;

break;

}

printf("%d",seat);

return0;

}

杨辉三角形

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intn,arr[35]={0};

scanf("%d",&n);

for(inti=1;i<=n;i++)

{

arr[1]=arr[i]=1;

for(intj=i-1;j>1;j--)

{

arr[j]+=arr[j-1];

}

for(intj=1;j<=i;j++)

printf("%d",arr[j]);

printf("\n");

}

return0;

}

特殊的数字

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

for(inti=100;i<1000;i++)

{

inta=i/100,b=i%100/10,c=i%10;

if(a*a*a+b*b*b+c*c*c==i)

printf("%d\n",i);

}

return0;

}

回文数

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

charstr[10];

for(inti=1000;i<10000;i++)

{

sprintf(str,"%d",i);

if(str[0]==str[3]&&str[1]==str[2])

printf("%d\n",i);

}

return0;

}

特殊回文数

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intn;

charstr[10];

scanf("%d",&n);

for(inti=10000;i<1000000;i++)

{

sprintf(str,"%d",i);

intsum=0;

for(intj=0;str[j];j++)

sum+=str[j]-'0';

if(sum!

=n)

continue;

if(i<100000&&str[0]==str[4]&&str[1]==str[3])

printf("%d\n",i);

elseif(i>=100000&&str[0]==str[5]&&str[1]==str[4]&&str[2]==str[3])

printf("%d\n",i);

}

return0;

}

十进制转十六进制

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

intn;

scanf("%d",&n);

printf("%X\n",n);

return0;

}

十六进制转十进制

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

unsignedintn;

scanf("%X",&n);

printf("%u\n",n);

return0;

}

十六进制转八进制

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

charstr[100005],num;

voidFun(inti,intstate)

{

inttemp;

if(i<0)

{

if(num!

=0)

{

printf("%d",num);

}

return;

}

if(state!

=3)

{

temp=str[i]>='0'&&str[i]<='9'?

str[i]-'0':

str[i]-'A'+10;

temp<<=state;

num|=temp;

temp=num;

num>>=3;

Fun(i-1,state+1);

printf("%d",(temp&1)+(temp&2)+(temp&4));

}

else

{

temp=num;

num>>=3;

Fun(i,0);

printf("%d",(temp&1)+(temp&2)+(temp&4));

}

}

intmain()

{

intn;

scanf("%d",&n);

while(n--)

{

num=0;

scanf("%s",str);

Fun(strlen(str)-1,0);

printf("\n");

}

return0;

}

数列排序

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intarr[205];

intmain()

{

intn;

scanf("%d",&n);

for(inti=0;i

scanf("%d",&arr[i]);

sort(arr,arr+n);

for(inti=0;i

printf("%d",arr[i]);

return0;

}

算法训练

区间k大数查询

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

intarr[1005];

intmain()

{

intn,m,l,r,k;

scanf("%d",&n);

for(inti=0;i

scanf("%d",&arr[i]);

scanf("%d",&m);

while(m--)

{

priority_queueque;

scanf("%d%d%d",&l,&r,&k);

for(inti=l-1;i

que.push(arr[i]);

while(--k)

que.pop();

printf("%d\n",que.top());

}

return0;

}

操作格子

#include

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

structLine

{

intl,r;

intsum,max;

};

Linearr[300005];

voidBuild(intseat,intl,intr)

{

arr[seat].l=l;

arr[seat].r=r;

arr[seat].sum=0;

arr[seat].max=0;

if(l==r)

return;

Build(seat*2,l,(l+r)/2);

Build(seat*2+1,(l+r)/2+1,r);

}

voidInsert(intseat,intv,intnum)

{

arr[seat].sum+=num;

if(arr[seat].max

arr[seat].max=num;

if(arr[seat].l==arr[seat].r)

return;

if(v<=(arr[seat].l+arr[seat].r)/2)

Insert(seat*2,v,num);

else

Insert(seat*2+1,v,num);

}

voidChange(intseat,intv,intnum)

{

if(v==arr[seat].l&&v==arr[seat].r)

{

arr[seat].sum=num;

arr[seat].max=num;

return;

}

intmiddle=(arr[seat].l+arr[seat].r)/2;

if(v<=middle)

Change(seat*2,v,num);

else

Change(seat*2+1,v,num);

arr[seat].sum=arr[seat*2].sum+arr[seat*2+1].sum;

arr[seat].max=max(arr[seat*2].max,arr[seat*2+1].max);

}

intQuerySum(intseat,intl,intr)

{

if(l==arr[seat].l&&r==arr[seat].r)

returnarr[seat].sum;

intmiddle=(arr[seat].l+arr[seat].r)/2;

if(r<=middle)

returnQuerySum(seat*2,l,r);

elseif(l>middle)

returnQuerySum(seat*2+1,l,r);

elsereturnQuerySum(seat*2,l,middle)+QuerySum(seat*2+1,middle+1,r);

}

intQueryMax(intseat,intl,intr)

{

if(l==arr[seat].l&&r==arr[seat].r)

returnarr[seat].max;

intmiddle=(arr[seat].l+arr[seat].r)/2;

if(r<=middle)

returnQueryMax(seat*2,l,r);

elseif(l>middle)

returnQueryMax(seat*2+1,l,r);

elsereturnmax(QueryMax(seat*2,l,middle),QueryMax(seat*2+1,middle+1,r));

}

intmain()

{

intn,m,temp,v,a,b;

scanf("%d%d",&n,&m);

Build(1,1,n);

for(inti=1;i<=n;i++)

{

scanf("%d",&temp);

Insert(1,i,temp);

}

while(m--)

{

scanf("%d%d%d",&v,&a,&b);

if(v==1)

Change(1,a,b);

elseif(v==2)

printf("%d\n",QuerySum(1,a,b));

else

printf("%d\n",QueryMax(1,a,b));

}

return0;

}

带分数

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

charstr[]="123456789";

charnum1[10],num2[10],num3[10];

inta,b,c,sum;

intmain()

{

intN;

scanf("%d",&N);

chartemp[10];

intlen=sprintf(temp,"%d",N);

do

{

for(inti=0;i

{

memcpy(num1,str,i+1);

num1[i+1]='\0';

a=atoi(num1);

for(intj=(((8-i)%2)?

((8-i)/2+1):

((8-i)/2));j<=7-i;++j)

{

if(str[i+j]-'0'!

=((N-a)*(str[8]-'0'))%10)

continue;

memcpy(num2,str+i+1,j);

num2[j]='\0';

memcpy(num3,str+i+1+j,8-i-j);

num3[8-i-j]='\0';

b=atoi(num2);

c=atoi(num3);

if(b>c&&b%c==0&&N==a+b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1