蓝桥杯试题答案(练习)

上传人:pu****.1 文档编号:427149431 上传时间:2023-10-29 格式:DOCX 页数:11 大小:25.13KB
返回 下载 相关 举报
蓝桥杯试题答案(练习)_第1页
第1页 / 共11页
蓝桥杯试题答案(练习)_第2页
第2页 / 共11页
蓝桥杯试题答案(练习)_第3页
第3页 / 共11页
蓝桥杯试题答案(练习)_第4页
第4页 / 共11页
蓝桥杯试题答案(练习)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《蓝桥杯试题答案(练习)》由会员分享,可在线阅读,更多相关《蓝桥杯试题答案(练习)(11页珍藏版)》请在金锄头文库上搜索。

1、1、亲密数:假设有 a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于 a,并且a不等于b,则称a和b是一对亲密数。如 284和220就是一对亲密数。#includeint main()int a,b,i,n;for(a=1;a=10000;a+)for(b=0,i=1;i=a/2;i+)if(a%i=0)b+=i;for(n=0,i=1;i=b/2;i+)if(b%i=0)n+=i;if(n=a&a!=b&ab)printf(%d-%dn”,a,b);return 0;2、世纪末的星期:曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的1

2、2月31日如果是星期一则会.有趣的是 任何一个世纪末的年份的12月31日都不可能是星期一 !于是“谣言制造商”又修改为星期日1999年的12月31日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99年的12月31日正好是星期天,即星期日请回答该年份,只写这个4位整数,不要写12月31等多余信息#includeint main()long days = 5;/*1999 年的最后一天为周 5, 把下一年加上5 天对 7 取余为 0 的 , 则是周日 */int i = 2000;for(;)/* 无循环终止条件,可以利用 break 语句终止循环*/if(i%4=0&i%100!=0|

3、i%400=0)days = days%7+366;elsedays = days%7+365;if(days%7=0&i%100=99)printf(%d,i);break;i+; return 0;3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次老师出的题目是 36 x 495 = ?他却给抄成了 396 x 45 = ?但结果却很戏剧性他的答案竟然是对的因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如 27 * 594 = 297 * 54假设a b c d e 代表19不同的5个数字,注意是各不相同的数

4、字且不含0能满足形如:ab * cde = adb * ce这样的算式一共有多少种呢请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。答案直接通过浏览器提交。注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。#includeint main()int n,m,i=0;for(int a=1;a10;a+)for(int b=1;b10;b+)for(int c=1;c10;c+)for(int d=1;d10;d+)for(int e=1;e10;e+)n=(a*10+b)*(c*100+d*10+e

5、);m=(a*100+d*10+b)*(c*10+e);if(n=m&a!=b&a!=c&a!=d&a!=e&b!=c&b!=d&b!=e&c!=d&c!=e&d!=e)i+;printf(%d,i);return 0;一、 啤酒和饮料啤酒每罐 2.3 元,饮料每罐1.9 元。小明买了若干啤酒和饮料,一共花了 82.3 元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。注意:答案是一个整数。请通过浏览器提交答案。不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等) 。#includeint main()int i,j;for(i=1;i36;i+)for(j=1;j44

6、;j+) if(i*2.3+j*1.9=82.3)&(ij)printf(%d %dn,i,j);return 0;二、高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年

7、月日。提交答案的格式是: 1799-07-16,例如:1980-03-21请严格按照格式,通过浏览器提交答案。注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。#includeint main()int year=1777,month=4,day=30;int a尸0,31,28,31,30,31,30,31,31,30,31,30,31;for(int i=1;i8113;i+)if(2=month&year%4=0&year%100!=0|year%400=0)a2=29;elsea2=28;day=day%amonth+1;if(day=1)month=month%12+1;

8、if(month=1)year+;printf(%d-%d-%d,year,month,day);return 0;三、排它平方数小明正看着203879这个数字发呆。原来,203879 * 203879 = 41566646641这有什么神奇呢?仔细观察,203879是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!再归纳一下筛选要求:1.6位正整数2 .每个数位上的数字不同3 .其平方数的每个数位不含原数字的任何组成数位答案是一个6位的正整数。请通过浏览器提交答案。注意:只提交另一 6位数,题中已经给出

9、的这个不要提交。注意:不要书写其它的内容(比如:说明性的文字)。#include #includeint judge(int n)int num = n;int vis10;memset(vis, 0, sizeof(vis); /*#include常用于数组的初始化 , 将它的所有元素初始化为 0 memset(f 数组名 ,0 要赋予的值,sizeof(f) 数组元素个数)*/while(num)int tmp = num % 10;num /= 10;if(vistmp)return 0;vistmp = 1;long long n1 = (long long)n * n;while(n

10、1)int tmp = n1 % 10;n1 /= 10;if(vistmp)return 0;return 1;int main() int i;for(i = 123456; i = 987654; i+)if(judge(i)printf(%dn,i);return 0;五、 换分币用一元人民币兑换成1 分、 2 分和 5 分硬币,共有多少种不同的兑换方法。#includeint main()int a,b,c,i=0;for(a=1;a=100;a+)for(b=0;b=50;b+)for(c=1;c=20;c+)if(a*1+b*2+c*5=100)i+;printf(%d,i);g

11、etch();return 0;(待看)标题:三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情 况建立好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过 1次线性扫描就结束战斗!以下的程序实现了该目标。其中x指向待排序的整型数组,len是数组的长度。#include void sort3P(int* x, int len)int p = 0;int left = 0;int righ

12、t = len-1;while(p=right)if(xp0)int t = xright;xright = xp;xp = t;right-;elsep+; /* 填空 */ int main(int argc, char* argv)int a=25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0;sort3p(a,14);for(int i=0;i14;i+)printf(%d ,ai);printf(n);return 0;七、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDEZ该代表不同的数字

13、,问号也代表某个数字!华生: “我猜也是! 于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把ABCDE所代表的数字写出来。答案写在“解答.txt ”中,不要写在这里!#includeint main()(int i;for(i=10000;i100000;i+)(int a = i/10000;int b = i%10000/1000;int c = i%10000%1000/100;int d = i%10000%1000%100/10;int e = i%10;if(a=b|a=c|a=d|a=e|b=c|b=d|b=e|c=d|c=e|d=e)(continue;int y = e*10000+d*1000+c*100+b*10+a;printf(%d*%d=%d,i,y/i,y);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号