蓝桥杯软件大赛题目集锦之填空题
2014-03-24 19:04
288 查看
1、梅森素数
如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数”例如:6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
早在公元前300多年,欧几里得就给出了判定完全数的定理:
若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。
其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7
但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。
因为法国数学家梅森的猜想,我们习惯上把形如:2^n - 1 的素数称为:梅森素数。
截止2013年2月,一共只找到了48个梅森素数。 新近找到的梅森素数太大,以至于难于用一般的编程思路窥其全貌,所以我们把任务的难度降低一点:
1963年,美国伊利诺伊大学为了纪念他们找到的第23个梅森素数 n=11213,在每个寄出的信封上都印上了“2^11213-1 是素数”的字样。
2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。
答案是一个长度为100的数字串,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。
答案:8586718527586602439602335283513944980064327030278104224144971883680541689784796267391476087696392191
2、马虎的算式
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36 x 495 = ?
他却给抄成了:396 x 45 = ?
但结果却很戏剧性,他的答案竟然是对的!!
因为 36 * 495 = 396 * 45 = 17820
类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54
假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?
请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
答案直接通过浏览器提交。
注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
答案:142
3、排它平方数
小明正看着 203879 这个数字发呆。原来,203879 * 203879 = 41566646641
这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
1. 6位正整数
2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位
答案是一个6位的正整数。
请通过浏览器提交答案。
注意:只提交另一6位数,题中已经给出的这个不要提交。
注意:不要书写其它的内容(比如:说明性的文字)。
答案:639172
4、最小公倍数
求两个数字的最小公倍数是很常见的运算。比如,3和5的最小公倍是15。6和8的最小公倍数是24。下面的代码对给定的两个正整数求它的最小公倍数。请填写缺少的代码,使程序尽量高效地运行。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
int f(int a, int b)
{
int i;
for(i=a;;______)
{
if(i%b==0) return i;
}
}
答案:i+=a
5、高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。
答案:1799-07-16
6、反转串
我们把“cba”称为“abc”的反转串。下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void reverse_str(char* buf, int n)
{
if(n<2) return;
char tmp = buf[0];
buf[0] = buf[n-1];
buf[n-1] = tmp;
_______________________________;
}
reverse_str(buf+1,n-2)
7、利息计算
小李年初在银行存款1千元(一年定期)。他计划每年年底取出100元救助失学儿童。假设银行的存款利率不变,年利率为3%,年底利息自动计入本金。下面的代码计算5年后,该账户上有多少存款。试填写缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
double money = 1000;
int n = 5;
int i;
for(i=0; i<n; i++)
{
money = _______________;
money -= 100;
}
printf("%.2f\n", money);
money * 1.03
8、获取中间数字
假设a,b,c是3个互不相等的整数。下列代码取出它们中居中的数值,记录在m中。其中的swap()函数可以交换两个变量的值。请完善代码。if(a>b) swap(&a, &b);
if(b>c) swap(&b, &c);
______________________;
int m = b;
if(a>b) swap(&a, &b)
9、神秘的三位数
有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。即:abc = a! + b! + c!下面的程序用于搜索这样的3位数。请补全缺失的代码。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
int JC[] = {1,1,2,6,24,120,720,5040,40320,362880};
int i;
for(i=100; i<1000; i++)
{
int sum = 0;
int x = i;
while(__________)
{
sum += JC[x%10];
x /= 10;
}
if(i==sum) printf("%d\n", i);
}
x > 0
相关文章推荐
- 蓝桥杯软件大赛题目集锦之编程大题
- 2012蓝桥杯软件大赛预赛题目汇总
- 2012年第三届蓝桥杯全国软件大赛c++预赛 题目及参考答案
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目X^X=10
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目\Java大学B组\2题 调和级数
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目\Java大学B组\1题
- 2013年第四届蓝桥杯全国软件大赛本科A组c++预赛 题目及参考答案
- 2015年 第六届蓝桥杯大赛个人赛省赛(软件类) C/C++大学A组 题目
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目X^X=10
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目\Java大学B组\3题 x的x次幂等于10
- 2015年 第六届蓝桥杯大赛决赛(软件类)C/C++大学A组 题目
- 2012蓝桥杯软件大赛预赛题目汇总
- 软件大赛题目----(第四个)选择-每数到3就出列1个最后剩下1个是谁
- rand函数 软件大赛题目 夺冠概率
- \第七届蓝桥杯大赛个人赛省赛(软件类)3 凑算式 【全排列解法】
- 第六届蓝桥杯大赛个人赛省赛(软件类) C/C++ 大学B组
- 蓝桥杯比赛题目集锦:JAVA组
- 第八届蓝桥杯大赛个人赛省赛C++ B组 题解+原题 (填空题)
- 软件大赛题目--第二个--求21位花骨朵数
- 第七届蓝桥杯大赛个人赛省赛(软件类)java语言B组第二题:生日蜡烛