蓝桥杯试题答案(练习)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11、亲密数:假设有a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并且a不等于b,则称a和b是一对亲密数。如284和220就是一对亲密数。#includestdio.hintmain(){inta,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-%d\n,a,b);}return0;}2、世纪末的星期:曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日如果是星期一则会....有趣的是任何一个世纪末的年份的12月31日都不可能是星期一!!于是“谣言制造商”又修改为星期日......1999年的12月31日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99年的12月31日正好是星期天,即星期日请回答该年份,只写这个4位整数,不要写12月31等多余信息#includestdio.hintmain(){longdays=5;/*1999年的最后一天为周5,把下一年加上5天对7取余为0的,则是周日*/inti=2000;for(;;)/*无循环终止条件,可以利用break语句终止循环*/{if(i%4==0&&i%100!=0||i%400==0){days=days%7+366;}else{days=days%7+365;}2if(days%7==0&&i%100==99){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这样的算式一共有多少种呢请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。答案直接通过浏览器提交。注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。#includestdio.hintmain(){intn,m,i=0;for(inta=1;a10;a++){for(intb=1;b10;b++){for(intc=1;c10;c++){for(intd=1;d10;d++){for(inte=1;e10;e++){n=(a*10+b)*(c*100+d*10+e);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++;}}3}}}printf(%d,i);return0;}一、啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。注意:答案是一个整数。请通过浏览器提交答案。不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。#includestdio.hintmain(){inti,j;for(i=1;i36;i++){for(j=1;j44;j++){if((i*2.3+j*1.9==82.3)&&(ij))printf(%d%d\n,i,j);}}return0;}二、高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年月日。提交答案的格式是:1799-07-16,例如:1980-03-21请严格按照格式,通过浏览器提交答案。注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。#includestdio.hintmain(){intyear=1777,month=4,day=30;inta[]={0,31,28,31,30,31,30,31,31,30,31,30,31};for(inti=1;i8113;i++)4{if(2==month&&year%4==0&&year%100!=0||year%400==0)a[2]=29;elsea[2]=28;day=day%a[month]+1;if(day==1){month=month%12+1;if(month==1)year++;}}printf(%d-%d-%d,year,month,day);return0;}三、排它平方数小明正看着203879这个数字发呆。原来,203879*203879=41566646641这有什么神奇呢?仔细观察,203879是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!再归纳一下筛选要求:1.6位正整数2.每个数位上的数字不同3.其平方数的每个数位不含原数字的任何组成数位答案是一个6位的正整数。请通过浏览器提交答案。注意:只提交另一6位数,题中已经给出的这个不要提交。注意:不要书写其它的内容(比如:说明性的文字)。#includestdio.h#includestring.hintjudge(intn){intnum=n;intvis[10];memset(vis,0,sizeof(vis));/*#includestring.h常用于数组的初始化,将它的所有元素初始化为0memset(f数组名,0要赋予的值,sizeof(f)数组元素个数)*/while(num){inttmp=num%10;num/=10;if(vis[tmp])return0;vis[tmp]=1;}5longlongn1=(longlong)n*n;while(n1){inttmp=n1%10;n1/=10;if(vis[tmp])return0;}return1;}intmain(){inti;for(i=123456;i=987654;i++){if(judge(i)){printf(%d\n,i);}}return0;}五、换分币用一元人民币兑换成1分、2分和5分硬币,共有多少种不同的兑换方法。#includestdio.hintmain(){inta,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);getch();return0;}6(待看)标题:三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。其中x指向待排序的整型数组,len是数组的长度。#includestdio.hvoidsort3p(int*x,intlen){intp=0;intleft=0;intright=len-1;while(p=right){if(x[p]0){intt=x[left];x[left]=x[p];x[p]=t;left++;p++;}elseif(x[p]0){intt=x[right];x[right]=x[p];x[p]=t;right--;}elsep++;/*填空*/}}intmain(intargc,char*argv[])7{inta[]={25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};sort3p(a,14);for(inti=0;i14;i++)printf(%d,a[i]);printf(\n);return0;}七、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE*?=EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把ABCDE所代表的数字写出来。答案写在“解答.txt”中,不要写在这里!#includestdio.hintmain(){inti;for(i=10000;i100000;i++){inta=i/10000;intb=i%10000/1000;intc=i%10000%1000/100;intd=i%10000%1000%100/10;inte=i%10;if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e){continue;}inty=e*10000+d*1000+c*100+b*10+a;8if(y%i==0){printf(%d*%d=%d,i,y/i,y);}}}

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功