蓝桥杯试题.docx

上传人:b****8 文档编号:12841615 上传时间:2023-06-08 格式:DOCX 页数:116 大小:152.40KB
下载 相关 举报
蓝桥杯试题.docx_第1页
第1页 / 共116页
蓝桥杯试题.docx_第2页
第2页 / 共116页
蓝桥杯试题.docx_第3页
第3页 / 共116页
蓝桥杯试题.docx_第4页
第4页 / 共116页
蓝桥杯试题.docx_第5页
第5页 / 共116页
蓝桥杯试题.docx_第6页
第6页 / 共116页
蓝桥杯试题.docx_第7页
第7页 / 共116页
蓝桥杯试题.docx_第8页
第8页 / 共116页
蓝桥杯试题.docx_第9页
第9页 / 共116页
蓝桥杯试题.docx_第10页
第10页 / 共116页
蓝桥杯试题.docx_第11页
第11页 / 共116页
蓝桥杯试题.docx_第12页
第12页 / 共116页
蓝桥杯试题.docx_第13页
第13页 / 共116页
蓝桥杯试题.docx_第14页
第14页 / 共116页
蓝桥杯试题.docx_第15页
第15页 / 共116页
蓝桥杯试题.docx_第16页
第16页 / 共116页
蓝桥杯试题.docx_第17页
第17页 / 共116页
蓝桥杯试题.docx_第18页
第18页 / 共116页
蓝桥杯试题.docx_第19页
第19页 / 共116页
蓝桥杯试题.docx_第20页
第20页 / 共116页
亲,该文档总共116页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

蓝桥杯试题.docx

《蓝桥杯试题.docx》由会员分享,可在线阅读,更多相关《蓝桥杯试题.docx(116页珍藏版)》请在冰点文库上搜索。

蓝桥杯试题.docx

蓝桥杯试题

 

2012蓝桥杯【决赛试题】星期几

标签:

 2012蓝桥杯初赛试题星期几C语言ACMC++OJ

2014-03-1417:

36 2251人阅读 评论(5) 收藏 举报

 分类:

 

蓝桥杯(30) 

版权声明:

本文为博主原创文章,未经博主允许不得转载。

题目描述:

   1949年的国庆节(10月1日)是星期六。

 

   今年(2012)的国庆节是星期一。

   那么,从建国到现在,有几次国庆节正好是星期日呢?

   只要答案,不限手段!

   可以用windows日历,windows计算器,Excel公式,。

   当然,也可以编程!

   不要求写出具体是哪些年,只要一个数目!

   千万不要提交源代码!

   答案不要写在这里,写在“解答.txt”中

 

思路:

一般的日期计算,吧星期日当做星期7算就可以了,对所在天数取余,9月算完在加一天对七取余看看是不是7,如果是那么成立并输出答案,不是不成立。

注意:

闰年的判断,月份天数的判断(二月十分重要),边界问题。

 

AC代码:

[cpp] viewplain copy

 

1.#include  

2.int Run(int year)  

3.{  

4.    if(year%400==0||(year%4==0&&year%100!

=0))  

5.    return 1;  

6.    else  

7.    return 0;  

8.}  

9.int month(int year,int n)  

10.{  

11.    int aws;  

12.    switch(n)  

13.    {  

14.       case 1:

aws=31;break;  

15.       case 2:

{  

16.            if(Run(year))  

17.            aws=29;  

18.            else aws=28;  

19.       }break;  

20.       case 3:

aws=31;break;  

21.       case 4:

aws=30;break;  

22.       case 5:

aws=31;break;  

23.       case 6:

aws=30;break;  

24.       case 7:

aws=31;break;  

25.       case 8:

aws=31;break;  

26.       case 9:

aws=30;break;  

27.       case 10:

aws=31;break;  

28.       case 11:

aws=30;break;  

29.       case 12:

aws=31;break;  

30.    }  

31.    return aws;  

32.}  

33.int main()  

34.{  

35.    int i,j,x,sum;  

36.    sum=5;  

37.    for(i=10;i<=12;i++)  

38.    {  

39.      sum+=month(1949,i);  

40.    }  

41.    for(i=1950;i<=2013;i++)//今天是2014年3月14日,所以算到2013年即可   

42.    {  

43.      for(j=1;j<=12;j++)  

44.      {  

45.         sum+=month(i,j);  

46.         if(j==9)  

47.         {  

48.            x=sum%7;  

49.            if(x+1==7)  

50.            printf("%d年的国庆节是星期日。

\n",i);  

51.         }  

52.      }  

53.    }  

54.    return 0;  

55.}  

打印结果:

1950年的国庆节是星期日。

1961年的国庆节是星期日。

1967年的国庆节是星期日。

1972年的国庆节是星期日。

1978年的国庆节是星期日。

1989年的国庆节是星期日。

1995年的国庆节是星期日。

2000年的国庆节是星期日。

2006年的国庆节是星期日。

所以本题答案为9天

2013蓝桥杯【模拟赛】运送马匹

标签:

 2013蓝桥杯初赛试题运送马匹C语言ACMC++OJ

2014-03-1314:

44 1742人阅读 评论(7) 收藏 举报

 分类:

 

蓝桥杯(30) 

版权声明:

本文为博主原创文章,未经博主允许不得转载。

运送马匹

 有1个人,要把n匹马从A村运往B村。

 初始时,人和马都在A村。

每次骑1匹马牵1匹马,回来时骑1匹马。

 已知每匹马从A村到B村需要的时间(数字越大越慢)

 两匹马同行时只能迁就较慢者。

 求所有马匹都运到B村的最小的运输时间(此时,人和马都在B村)。

 程序首先输入一个整数n(n<100),表示有n匹马。

 接着是n行整数,表示马从A村到B村的所用的分钟数(小于1000)

 程序输出:

1个整数,表示所有马匹均运到B村的最小总耗时。

 例如,

输入:

3

1

2

4

程序应输出:

7

输入:

4

1

4

2

5

程序应该输出:

12

对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库,但不能使用MFC或ATL等非ANSIc++标准的类库。

例如,不能使用CString类型(属于MFC类库)。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意选择自己使用的编译环境。

 

思路:

选择两匹最快的马匹来回运送其它的马匹,最后的最后再将这两批最快的马匹运回就完成了

因为用到贪心思想,所以一开始要将马匹的速度从小到大排序,得到速度最快的前两个马匹,之后

运用递归的方法来运送马匹,一回合用最快的马运送两个(例如:

1,2,5,4,8:

排序后:

1,2,4,5,8;先用1,2,将1送到目的地,用时a[1],2返回

,用时a[1],之后速度倒数第二的马匹和速度倒数第一的马匹一起过去,用的时间是a[n-1](此时B地有马3匹,分别是1和a[n-2]和a[n-1]),

之后1再回去,用时a[0],一回合的用时就是a[1]*2+a[0]+a[n-1],此时运送了两匹马(a[n-2]和a[n-1])),直到运送完毕

[cpp] viewplain copy

 

1.#include  

2.#include  

3.using namespace std;  

4.int a[200],sum=0;  

5.int Fun(int n)  

6.{  

7.    if(n==1)  

8.    sum+=a[0];  

9.    else if(n==2)  

10.    sum+=a[1];  

11.    else if(n==3)  

12.    sum+=a[1]+a[2];  

13.    else  

14.    {  

15.        sum+=2*a[1]+a[0]+a[n-1];//每一回合的式子  

16.        Fun(n-2);//运好两匹马之后递归     

17.    }  

18.}  

19.int main()  

20.{  

21.    int i,j,n,m1,m2;  

22.    scanf("%d",&n);  

23.    for(i=0;i

24.    scanf("%d",&a[i]);  

25.    sort(a,a+n);//排序(从小到大)  

26.    Fun(n);  

27.    printf("%d\n",sum);  

28.    return 0;  

29.}  

 

2013蓝桥杯【模拟赛】画表格

标签:

 2013蓝桥杯模拟赛画表格.txtC语言ACMC++OJ

2014-03-1121:

33 940人阅读 评论(0) 收藏 举报

 分类:

 

蓝桥杯(30) 

版权声明:

本文为博主原创文章,未经博主允许不得转载。

画表格

在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。

比如:

 

┌─┬─┐

│   │   │

├─┼─┤

│   │   │

└─┴─┘

其实,它是由如下的符号拼接的:

左上=┌

上= ┬

右上= ┐

左= ├

中心= ┼

右= ┤

左下= └

下= ┴

右下= ┘

垂直= │

水平=  ─

本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。

例如用户输入:

32

则程序输出:

┌─┬─┐

│   │   │

├─┼─┤

│   │  │

├─┼─┤

│    │ │

└─┴─┘

用户输入:

23

则程序输出:

┌─┬─┬─┐

│   │   │   │

├─┼─┼─┤

│   │  │    │

└─┴─┴─┘

对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库,但不能使用MFC或ATL等非ANSIc++标准的类库。

例如,不能使用CString类型(属于MFC类库)。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意选择自己使用的编译环境。

 

思路:

先输出第一小排和最后一排,中间的交替,每一排不一样的字符中间交替

如2行4列用题中所给的小字符组合的话,需要的字符是5行9列,其它几组也看看就发现规律了,自己画图想想

代码仅供参考

[cpp] viewplain copy

 

1.#include  

2.int main()  

3.{  

4.    int i,j,n,m,x,y,k;  

5.    while(scanf("%d %d",&n,&m)!

=EOF)  

6.    {  

7.       x=m*2+1;y=n*2+1;//转换(很重要,想想为什么,自己画画图就懂了)  

8.       printf("┌");  

9.       for(i=2;i<=x-1;i++)  

10.       {  

11.          if(i%2==0)  

12.          printf("─");  

13.          else  

14.          printf("┬");   

15.       }  

16.       printf("┐");  

17.       puts("");  

18.         

19.       for(i=2;i<=y-1;i++)  

20.       {  

21.          if(i%2==0)  

22.          {  

23.             for(j=1;j<=x;j++)  

24.             {  

25.                  if(j%2!

=0)  

26.                  printf("│");  

27.                  else  

28.                  printf("  ");  

29.             }  

30.             puts("");  

31.          }  

32.          else  

33.          {  

34.               printf("├");  

35.               for(k=2;k<=x-1;k++)  

36.               {  

37.                  if(k%2==0)  

38.                  printf("─");  

39.                  else  

40.                  printf("┼");   

41.               }  

42.               printf("┤");  

43.               puts("");    

44.          }  

45.       }  

46.       printf("└");  

47.       for(i=2;i<=x-1;i++)  

48.       {  

49.          if(i%2==0)  

50.          printf("─");  

51.          else  

52.          printf("┴");   

53.       }  

54.       printf("┘");  

55.       puts("");  

56.    }  

57.    return 0;  

58.}   

 

样例:

55

┌─┬─┬─┬─┬─┐

│ │ │ │ │ │

├─┼─┼─┼─┼─┤

│ │ │ │ │ │

├─┼─┼─┼─┼─┤

│ │ │ │ │ │

├─┼─┼─┼─┼─┤

│ │ │ │ │ │

├─┼─┼─┼─┼─┤

│ │ │ │ │ │

└─┴─┴─┴─┴─┘

2013蓝桥杯【模拟赛】硬币方案

标签:

 2013蓝桥杯模拟赛硬币方案C语言ACMC++OJ

2014-03-1120:

59 1173人阅读 评论

(2) 收藏 举报

 分类:

 

蓝桥杯(30) 

版权声明:

本文为博主原创文章,未经博主允许不得转载。

硬币方案

有50枚硬币,可能包括4种类型:

1元,5角,1角,5分。

已知总价值为20元。

求各种硬币的数量。

比如:

2,34,6,8就是一种答案。

而2,33,15,0是另一个可能的答案,显然答案不唯一。

你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)?

直接提交该数字,不要提交多余的内容。

 

思路:

什么也别想,比赛时间紧,而且只要求输出答案即可,直接暴力搜索!

小技巧:

5角,1角,5分化成浮点型数据(double)容易计算出错,把所有数去全乘以100,20块变成2000块,

1元,5角,1角,5分变成100元,50元,10元,5元。

整形计算出错率大大降低

AC代码:

[cpp] viewplain copy

 

1.#include  

2.int b[1000][4];  

3.int main()  

4.{  

5.    int i,j,x,p,k=0;  

6.    int n=2000;  

7.    for(i=0;i<=50;i++)  

8.    for(j=0;j<=50;j++)  

9.    for(x=0;x<=50;x++)  

10.    for(p=0;p<=50;p++)  

11.    {  

12.      if(i*100+j*50+x*10+p*5==n&&i+j+x+p==50)  

13.      {  

14.         b[k][0]=i;b[k][1]=j;b[k][2]=x;b[k][3]=p;  

15.         printf("%d %d %d %d\n",i,j,x,p);  

16.         k++;  

17.      }  

18.    }  

19.    for(i=0;i

20.    {  

21.       for(j=0;j<4;j++)  

22.       printf("%d ",b[i][j]);  

23.       puts("");  

24.    }  

25.    printf("总数为:

%d\n",k);  

26.    while

(1);  

27.    return 0;  

28.}  

 

答案:

50种

所有情况

03884

13676

233150

23468

331142

332510

429134

430412

527126

528314

624200

625118

626216

722192

7231010

724118

820184

821912

822020

918176

919814

1015250

1016168

1017716

1113242

11141510

1115618

1211234

12121412

1213520

139226

13101314

1311422

146300

147218

1481216

149324

154292

1552010

1561118

157226

162284

1631912

1641020

165128

170276

1711814

172922

173030

180824

03884

13676

233150

23468

331142

332510

429134

430412

527126

528314

624200

625118

626216

722192

7231010

724118

820184

821912

822020

918176

919814

1015250

1016168

1017716

1113242

11141510

1115618

1211234

12121412

1213520

139226

13101314

1311422

146300

147218

1481216

149324

154292

1552010

1561118

157226

162284

1631912

1641020

165128

170276

1711814

172922

173030

180824

总数为50组

2013蓝桥杯【模拟赛】1的个数

标签:

 2013蓝桥杯模拟赛1的个数C语言ACMC++OJ

2014-03-1120:

40 858人阅读 评论(0) 收藏 举报

 分类:

 

蓝桥杯(30) 

版权声明:

本文为博主原创文章,未经博主允许不得转载。

一、标题:

1的个数

从1到20的所有数字中含有多少个“1”

仔细数一下,应该是12个。

那么从1到1000的整数中,含有多少个“1”呢?

请填写该数字。

 

解析:

很简单送分的,注意细节处理!

代码:

[cpp] viewplain copy

 

1.#include  

2.int Fun(int n)//把每一位拆开,看看哪一位是零就标记,最后返回数字每位的0总数   

3.{  

4.    int m,x,sum=0;  

5.    m=n;  

6.    while(m)  

7.    {  

8.      x=m%10;  

9.      if(x==1)  

10.      sum++;  

11.      m/=10;  

12.    }  

13.    return sum;  

14.}  

15.int main()  

16.{  

17.    int i,sum=0;  

18.    for(i=1;i<=1000;i++)  

19.    {  

20.       if(Fun(i))  

21.       {  

22.          sum+=Fun(i);  

23.       }  

24.    }  

25.    printf("%d\n",sum);  

26.    return 0;  

27.}   

答案:

301

分别是:

1

101112131415

16171819213141

5161718191100101

102103104105106107

108109110111112113114115

116117118119120121122123

124125126127128129130

131132133134135136

137138139140141142

143144145146147148149

150151152153154155

156157158159160161162163164165166167168

169170171172173174

175176177178179180181

182183184185186187

188189190191192193

194195196197198199201

210211212213214215

216

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2