蓝桥杯试题答案练习.docx

上传人:b****4 文档编号:12047153 上传时间:2023-04-16 格式:DOCX 页数:12 大小:18.18KB
下载 相关 举报
蓝桥杯试题答案练习.docx_第1页
第1页 / 共12页
蓝桥杯试题答案练习.docx_第2页
第2页 / 共12页
蓝桥杯试题答案练习.docx_第3页
第3页 / 共12页
蓝桥杯试题答案练习.docx_第4页
第4页 / 共12页
蓝桥杯试题答案练习.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

蓝桥杯试题答案练习.docx

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

蓝桥杯试题答案练习.docx

蓝桥杯试题答案练习

1、亲密数:

假设有a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并且a不等于b,则称a和b是一对亲密数。

如284和220就是一对亲密数。

#include

intmain<>

{

inta,b,i,n;

for

{

for

if

b+=i;

for

if

n+=i;

if

=b&&a

printf<"%d-%d\n",a,b>;

}

return0;

}

2、世纪末的星期:

曾有邪教称1999年12月31日是世界末日。

当然该谣言已经不攻自破。

还有人称今后的某个世纪末的12月31日如果是星期一则会....

有趣的是任何一个世纪末的年份的12月31日都不可能是星期一!

!

于是"谣言制造商"又修改为星期日......

1999年的12月31日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99年的12月31日正好是星期天,即星期日

请回答该年份,只写这个4位整数,不要写12月31等多余信息

#include

intmain<>

{

longdays=5;/*1999年的最后一天为周5,把下一年加上5天对7取余为0的,则是周日*/

inti=2000;

for<;;>/*无循环终止条件,可以利用break语句终止循环*/

{

if

=0||i%400==0>

{

days=days%7+366;

}

else

{

days=days%7+365;

}

if

{

printf<"%d",i>;

break;

}

i++;

}

return0;

}

3、马虎的算式:

小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

有一次老师出的题目是36x495=?

他却给抄成了396x45=?

但结果却很戏剧性他的答案竟然是对的

因为36*495=396*45=17820

类似这样的巧合情况可能还有很多,比如27*594=297*54

假设abcde代表1~9不同的5个数字,注意是各不相同的数字且不含0

能满足形如:

ab*cde=adb*ce这样的算式一共有多少种呢

请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。

满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。

答案直接通过浏览器提交。

注意:

只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。

#include

intmain<>

{

intn,m,i=0;

for

{

for

{

for

{

for

{

for

{

n=*;

m=*;

if

=b&&a!

=c&&a!

=d&&a!

=e&&b!

=c&&b!

=d&&b!

=e&&c!

=d&&c!

=e&&d!

=e>

i++;

}

}

}

}

}

printf<"%d",i>;

return0;

}

一、啤酒和饮料

啤酒每罐2.3元,饮料每罐1.9元。

小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:

答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容〔例如:

写了饮料的数量,添加说明文字等〕。

#include

intmain<>

{

inti,j;

for

{

for

{

if<&&>

printf<"%d%d\n",i,j>;

}

}

return0;

}

二、高斯日记

大数学家高斯有个好习惯:

无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:

4210

后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。

这或许也是个好习惯,它时时刻刻提醒着主人:

日子又过去一天,还有多少时光可以用于浪费呢?

高斯出生于:

1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:

5343,因此可算出那天是:

1791年12月15日。

高斯获得博士学位的那天日记上标着:

8113请你算出高斯获得博士学位的年月日。

提交答案的格式是:

1799-07-16,例如:

1980-03-21

请严格按照格式,通过浏览器提交答案。

注意:

只提交这个日期,不要写其它附加内容,比如:

说明性的文字。

#include

intmain<>

{

intyear=1777,month=4,day=30;

inta[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

for

{

if<2==month&&year%4==0&&year%100!

=0||year%400==0>

a[2]=29;

else

a[2]=28;

day=day%a[month]+1;

if

{

month=month%12+1;

if

year++;

}

}

printf<"%d-%d-%d",year,month,day>;

return0;

}

三、排它平方数

小明正看着203879这个数字发呆。

原来,203879*203879=41566646641这有什么神奇呢?

仔细观察,203879是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。

具有这样特点的6位数还有一个,请你找出它!

再归纳一下筛选要求:

1.6位正整数

2.每个数位上的数字不同

3.其平方数的每个数位不含原数字的任何组成数位

答案是一个6位的正整数。

请通过浏览器提交答案。

注意:

只提交另一6位数,题中已经给出的这个不要提交。

注意:

不要书写其它的内容〔比如:

说明性的文字〕。

#include

#include

intjudge

{

intnum=n;

intvis[10];

memset>;/*#include常用于数组的初始化,将它的所有元素初始化为0memset数组元素个数>*/

while

{

inttmp=num%10;

num/=10;

if

return0;

vis[tmp]=1;

}

longlongn1=n*n;

while

{

inttmp=n1%10;

n1/=10;

if

return0;

}

return1;

}

intmain<>

{inti;

for

{

if>

{

printf<"%d\n",i>;

}

}

return0;

}

五、换分币

用一元人民币兑换成1分、2分和5分硬币,共有多少种不同的兑换方法。

#include

intmain<>

{

inta,b,c,i=0;

for

{

for

{

for

{

if

i++;

}

}

}

printf<"%d",i>;

getch<>;

return0;

}

〔待看〕标题:

三部排序

一般的排序有许多经典算法,如快速排序、希尔排序等。

但实际应用时,经常会或多或少有一些特殊的要求。

我们没必要套用那些经典算法,可以根据实际情况建立

好的解法。

比如,对一个整型数组中的数字进行分类排序:

使得负数都靠左端,正数都靠右端,0在中部。

注意问题的特点是:

负数区域和正数区域内并不要求有序。

可以利用这个特点通过1次线性扫描就结束战斗!

!

以下的程序实现了该目标。

其中x指向待排序的整型数组,len是数组的长度。

#include

voidsort3p

{

intp=0;

intleft=0;

intright=len-1;

while{

if{

intt=x[left];

x[left]=x[p];

x[p]=t;

left++;

p++;

}

elseif0>{

intt=x[right];

x[right]=x[p];

x[p]=t;

right--;

}

else

p++;/*填空*/

}

}

intmain

{

inta[]={25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};

sort3p;

for

printf<"%d",a[i]>;

printf<"\n">;

return0;

}

七、古堡算式

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

ABCDE*?

=EDCBA

他对华生说:

"ABCDE应该代表不同的数字,问号也代表某个数字!

"

华生:

"我猜也是!

"

于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE所代表的数字写出来。

答案写在"解答.txt"中,不要写在这里!

#include

intmain<>

{

inti;

for

{

inta=i/10000;

intb=i%10000/1000;

intc=i%10000%1000/100;

intd=i%10000%1000%100/10;

inte=i%10;

if

{

continue;

}

inty=e*10000+d*1000+c*100+b*10+a;

if

{

printf<"%d*%d=%d",i,y/i,y>;

}

}

}

展开阅读全文
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

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

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