
蓝桥杯基础专题
文章平均质量分 77
锐不可当cr
持续努力 保持激情 勿忘初心
展开
-
蓝桥杯——专题:贪心法(2017.3.4)
一、0-1背包问题 装船问题 某船最大载重量为m吨,现有n件货物供选择装船,每件货物的重量和价值不同。那么从这n件货物中挑选若干件上船,在满足货物总重量【分析】从价重比(价格/重量)入手,计算每件货物的价重比后,按价重比从大到小排序,在不超重的情况下从价重比最大的货物开始装船。贪心策略正体现在这一点。源代码:#include #define maxn原创 2017-03-04 15:54:07 · 1718 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题训练(2017.2.12)
1. (2002 THU)有多少不同的面值组合?源代码:#include #define maxn 250int Judge(int a[],int t){ int i,flag=1; for(i=0;i<t;i++) { if(a[i]==a[t]) { flag=0; break; } } return flag;}int main(原创 2017-02-12 20:34:01 · 444 阅读 · 0 评论 -
蓝桥杯——趣味数学问题举例二(2017.2.11)
一、舍罕王的失算 相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8X8共64格的象棋棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的许诺吗?共要原创 2017-02-12 17:27:09 · 1060 阅读 · 0 评论 -
蓝桥杯——递归二:典型递归模型(2017.2.20)
1. 递归法实现折半查找源代码:法一:#include #define maxn 1010int Find(int a[],int k,int low,int high){ int i,mid; if(low>high) i=-1; else { mid=(low+high)/2; if(a[mid]==k) i=mid; else if(a[mid原创 2017-02-20 19:54:54 · 1111 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.3.1)
1. (2009年浙江大学计算机研究生机试真题)寻找大富翁题目描述: 浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.输入: 输入包含多组测试用例. 每个用例首先包含2个整数n(0 n和m同时为0时表示输入结束.输出: 请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.样例输入:原创 2017-03-01 13:06:53 · 820 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.20)
1. (2008年华中科技大学计算机研究生机试真题)八进制题目描述:输入一个整数,将其转换成八进制数输出。输入:输入包括一个整数N(0输出:可能有多组测试数据,对于每组数据,输出N的八进制表示数。样例输入:789样例输出:71011法一:递归法:#include void fun(int N){ if(N) { fun原创 2017-02-20 11:50:39 · 2097 阅读 · 2 评论 -
蓝桥杯——趣味数学问题举例一(2017.2.10)
一、筐中多少蛋?有一筐鸡蛋,1个1个拿,正好拿完;2个2个拿,还剩1个;3个3个拿,正好拿完;4个4个拿,还剩1个;5个5个拿,还差1个;6个6个拿,还剩3个;7个7个拿,正好拿完;8个8个拿,还剩1个;9个9个拿,正好拿完。 问筐里可能有多少鸡蛋?若答案不唯一,输出最小解。源代码:(暴力求解,设范围为1~2100000000)#i原创 2017-02-10 21:08:13 · 1036 阅读 · 0 评论 -
蓝桥杯——指针部分基础内容回顾一(2017.2.10)
主题:指针与指针变量1. 通过指针变量访问整型变量(即“间接访问”方式)源代码:#include int main(){ int a,b; int *p1,*p2; a=1,b=2; p1=&a; p2=&b; printf("a=%d b=%d\n",a,b); //"直接访问" 输出变量a和b的值 printf("locp1=%d loc原创 2017-02-10 19:22:05 · 522 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.28)
1. (2009年浙江大学计算机研究生机试真题)xxx定律题目描述: 对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。 请计算需要经过几步才能将n变到1,具体可见样例。输入: 测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1输出: 对于每组测试用例请输出一个数,表原创 2017-02-28 18:57:10 · 803 阅读 · 0 评论 -
蓝桥杯——指针部分基础内容回顾二(2017.2.27)
一、函数指针 “类型名 (*指针变量名)(函数参数表列)”1. 使用指向函数的指针,通过指针变量访问它所指向的函数:求整数a和b中的大者。源代码:#include int max(int x,int y) //注意返回值的类型为整型{ return (x>y)?x:y;}int main(){ int a,b原创 2017-02-27 20:55:36 · 665 阅读 · 0 评论 -
蓝桥杯——递归一:概念及简单递归问题(2017.2.19)
1. 求n!(这里附加一个限制条件:0源代码:#include int fun(int n){ if(n==0 || n==1) return 1; else return n*fun(n-1);}int main(){ int n; while(scanf("%d",&n)!=EOF) printf("%d!=%d\n",n,fun(n)); return原创 2017-02-19 20:49:35 · 1037 阅读 · 0 评论 -
蓝桥杯——指针问题典例一(2017.2.28)
1. 输入3个整数,按由小到大的顺序输出源代码:#include void swap(int *p1,int *p2){ int t; t=*p1; *p1=*p2; *p2=t;}void sort(int *a,int *b,int *c) //三整数排序,根据大小调用交换函数{ if(*a>*b) swap(a,b)原创 2017-02-28 20:25:44 · 1208 阅读 · 1 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.21)
1. (2009年华中科技大学计算机研究生机试真题)成绩排序题目描述:用一维数组存储学号和成绩,然后,按成绩排序输出。输入:输入第一行包括一个整数N(1接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序。样例输入:31原创 2017-02-21 16:11:54 · 607 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.22)
1. (2008年北京大学图形实验室计算机研究生机试真题)整数奇偶排序题目描述:输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。输入:任意排序的10个整数(0~100),彼此以空格分隔。输出:可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。原创 2017-02-22 16:34:47 · 480 阅读 · 0 评论 -
蓝桥杯——2014 HIT计算机研究生机试真题(2017.2.2)
源代码:#include void YHTriangle(int a[][15], int n); /*用于计算杨辉三角形*/void PrintYHTriangle(int a[][15], int n); /*用于打印杨辉三角形*/int main(){ int a[15][15],n; printf("Input n(n<=15):\n")原创 2017-02-02 19:37:29 · 655 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.15)
1. (2010年清华大学计算机研究生机试真题)特殊乘法题目描述:写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5输入: 两个小于1000000000的数输出: 输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。样例输入原创 2017-02-15 14:59:33 · 479 阅读 · 0 评论 -
蓝桥杯——专题:高精度问题一(2017.3.2)
一、大整数加法1. 两个大整数相加:输入两个1000位以内的整数a和b,输出a+b。源代码:#include #include #define maxlen 1010void Reverse(char *s){ int i=0,j=strlen(s)-1; char t; while(i<j) { t=*(s+i);原创 2017-03-02 21:20:23 · 798 阅读 · 0 评论 -
蓝桥杯——趣味整数问题二(2017.1.31)
一、无重复的三位数 编程求:用1.2.3.4共4个数字组成的互不相同且无重复数字的三位数以及个数 ※1)枚举、排列组合问题 2)效率改进点:依次枚举三位数字(三层循环),若前两位相同则无需进入第三层循环源代码:#include #include int main(){ int i,j,k; int num=0; fo原创 2017-01-31 19:58:26 · 597 阅读 · 0 评论 -
蓝桥杯——结构体问题典例(2017.3.2)
1. 有3个候选人(“zhang”.“li”.“sun”)及n个选民,每个选民只能投票选1人,编一个统计选票的程序,先后输入被选人的名字,最后输出他们的得票结果。源代码:#include #include struct Leader{ char name[32]; int count;} leader[3]={"Zhang",0,"Li",0,"Sun",0};int mai原创 2017-03-02 17:37:43 · 1383 阅读 · 0 评论 -
蓝桥杯——趣味整数问题一(2017.1.30)
一、完数问题 求某一范围(1~n)内的完数及个数源代码:#include int Fun(int n){ int i,j,num=0; int sum; printf("1~%d内的完数:\n",n); for(i=1;i<=n;i++) { sum=0; for(j=1;j<=i;j++) { if(i%j==0) sum+=j原创 2017-01-30 21:12:36 · 598 阅读 · 0 评论 -
蓝桥杯——2015 HIT计算机研究生机试真题(2017.1.29)
训练用时:40min源代码:#include int main(){ int i,n; double sum=0; printf("Input n(0<n<1000)\n"); scanf("%d",&n); for(i=1;i<=n;i++) { if((i%10==6) || (i/10==6) || (i/10%10==6) || (i/100==6))原创 2017-01-29 19:51:11 · 407 阅读 · 0 评论 -
蓝桥杯——趣味数组问题二(2017.2.14)
一、矩阵转置 -->行变列,列变行 以下情景中设矩阵最大为20*20,即在此范围内保存操作前和操作后矩阵。1. 方阵(N*N矩阵)转置源代码:采用“就地转置”方法,不使用新数组,对原数组上下三角部分进行元素交换操作#include #define maxn 20void Input(int a[][maxn],int N){ int i,j; for(i=0原创 2017-02-14 20:00:06 · 672 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.14)
1. (2008年北京大学图形实验室计算机研究生机试真题)吃糖果题目描述:名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1原创 2017-02-14 15:55:19 · 591 阅读 · 0 评论 -
蓝桥杯——递归三:递归的一些实际应用(2017.2.22)
1. 猴子吃桃问题源代码:#include int fun(int n){ if(n==1) return 1; else return (fun(n-1)+1)*2;}int main(){ int n; while(scanf("%d",&n)!=EOF) printf("%d\n",fun(n)); return 0;}程序截图:2. h原创 2017-02-22 20:05:12 · 865 阅读 · 0 评论 -
蓝桥杯——数组、函数问题典例二(2017.1.18)
一、几个矩阵类问题1. m*n矩阵转置(1)就地转置:针对m=n的情况,此时矩阵为方阵源代码:#include #define maxn 50void trans(int a[][maxn],int n) //就地转置矩阵 { int i,j; int temp; for(i=0;i<n;i++) //仅需处理矩阵下三角部分原创 2017-01-20 11:25:57 · 389 阅读 · 0 评论 -
蓝桥杯——数组、函数问题典例一(2017.1.17)
1. 输入一个正整数n(n源代码:#include #include #define maxn 1000int main(){ int i,j,n; int num,a[maxn]; while(scanf("%d",&n)!=EOF) { num=0; for(i=0;i<n;i++) { a[i]=i+1; /原创 2017-01-19 22:07:33 · 739 阅读 · 0 评论 -
蓝桥杯——计算机研究生机试真题(2017.2.19)
1. (2012年北京大学计算机研究生机试真题)最简真分数题目描述:给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。输入:输入有多组,每组包含n(n当n=0时,程序结束,不需要处理这组数据。输出:每行输出最简真分数组合的个数。样例输入:73 5 7 9 11 13 153 2 4 50样例输出:17原创 2017-02-19 16:11:17 · 795 阅读 · 0 评论 -
蓝桥杯——迭代法进阶 几个实际应用问题(2017.1.14)
注:以下情景均不考虑结果溢出问题1. 一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 n 个月时,该饲养场共有兔子多少只?源代码:#include int main(){ int x0,x1; //x0-每个月出生的兔子数 x1-兔子总数原创 2017-01-14 21:07:07 · 2354 阅读 · 0 评论 -
蓝桥杯——2010 吉大计算机研究生机试真题(2017.2.5)
1. 三角形的边源代码:#include void fun(int a,int b,int c){ int min,mid,max; int t; if(a>b) t=a,a=b,b=t; if(b>c) t=b,b=c,c=t; if(a>b) t=a,a=b,b=t; min=a,mid=b,max=c; printf("%d\n",min+mid-m原创 2017-02-05 15:50:41 · 384 阅读 · 0 评论 -
蓝桥杯——趣味数组问题一(2017.2.5)
一、“狼追兔子”问题 一只兔子躲进了10个环形分布的洞中的一个,狼在第一个洞中未找到兔子,就隔一个洞,到第3个洞中找;也未找到,就隔2个洞,到第6个洞中找;以后每次多隔一个洞去找兔子……这样下去,如果一直找不到兔子,则兔子可能在哪个洞中?(设最大寻找次数为1000)源代码:#include int main(){ int a[10];原创 2017-02-05 16:31:37 · 2571 阅读 · 0 评论 -
蓝桥杯——迭代法初步(2017.1.13)
1. 用迭代法求x的算术平方根,迭代公式为 xn+1=1/2*(xn+a/xn),要求前后两次求出的x的差的绝对值小于10^(-5)源代码:#include #include int main(){ int a; double x0,x1; while(scanf("%d",&a)!=EOF) { x0=a/2; //取x0初值为a/2原创 2017-01-14 09:34:38 · 573 阅读 · 0 评论 -
蓝桥杯——2009 北航计算机研究生机试真题(2017.2.4)
1. 迭代求立方根源代码:#include int main(){ double x,n; double y0,y1; while(scanf("%lf %lf",&x,&n)!=EOF) { if(n==0) //迭代次数为0,直接开3次方得结果 y0=x; else原创 2017-02-04 18:08:56 · 702 阅读 · 0 评论 -
蓝桥杯——趣味素数问题(2017.2.3)
一、基本素数问题1. 求给定范围start~end之间的所有素数(1源代码:#include #include int main(){ int start,end; int i,j,k,num,flag; while(scanf("%d %d",&start,&end)!=EOF) { num=0; for(i=start;i<=end;i++) { k原创 2017-02-04 11:31:55 · 2405 阅读 · 0 评论 -
蓝桥杯-排列(例题)
排列(permutation) 用1,2,3,...,9组成3个三位数abc, def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。输出所有解。提示:不必太动脑筋。分析:源代码:法一:暴力枚举法:#include int main() { int i, j, k; in原创 2016-11-02 18:58:13 · 1372 阅读 · 2 评论 -
蓝桥杯-3n+1问题(例题)
“3n+1”问题: 对于任意大于1的自然数n,若该数为偶数则将其变为原来的一半,若为奇数则将其变为3n+1。反复进行上述过程,直到结果为1时停止。这就是著名的“3n+1”问题。要求输入n,输出按“3n+1”规则变换到1所需要的数字变换次数。(n分析: 因循环次数不确定,而且n也不是“递增”式的循环,因此可用while循环实现计算过程,用一个计数变量统计数字变换原创 2016-11-01 12:33:46 · 5723 阅读 · 1 评论 -
蓝桥杯-鸡兔同笼问题(例题)
鸡兔同笼问题:已知鸡和兔的总数量为n,总整数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出No answer。源代码:程序截图:原创 2016-10-31 17:44:20 · 3726 阅读 · 0 评论 -
蓝桥杯-01字串(基础练习)
问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011源代码原创 2016-10-28 18:58:10 · 1465 阅读 · 0 评论 -
蓝桥杯——2011 吉大计算机研究生机试真题(节选,2017.2.6)
1. 数字之和源代码:#include int main(){ int n,pown; int sum1,sum2; while(scanf("%d",&n)!=EOF) { if(n==0) break; pown=n*n; sum1=0,sum2=0; while(n) { sum1+=n%10; n/=10; } wh原创 2017-02-06 16:00:42 · 467 阅读 · 0 评论 -
蓝桥杯——排序问题专题小结(2017.1.12)
Part 1:说明 综合大一C/C++及大二上学期数据结构内容,现对插入排序(直接插入/折半插入/希尔排序)、交换排序(冒泡/快速排序)、选择排序(直接选择排序)进行小结,通过输入n(数据元素个数)及n个数据元素,输出排序结果。Part2:源代码汇总#include #define maxn 1000void BubbleSort(int a[],int n)原创 2017-01-12 10:32:34 · 612 阅读 · 0 评论 -
蓝桥杯——循环问题典例(2017.1.15)
注:以下问题均不考虑结果溢出问题1. 数字阶梯求和:输入a和n,求Sn=a+aa+aaa+…+aa…a(n个a)的值,a是一个数字,n表示a的位数源代码:#include int main(){ int sum; //求和结果 int a,n,t; int time;原创 2017-01-16 21:40:10 · 768 阅读 · 0 评论