蓝桥杯练习题库-3算法训练题

上传人:大米 文档编号:491496447 上传时间:2023-07-06 格式:DOC 页数:47 大小:151.50KB
返回 下载 相关 举报
蓝桥杯练习题库-3算法训练题_第1页
第1页 / 共47页
蓝桥杯练习题库-3算法训练题_第2页
第2页 / 共47页
蓝桥杯练习题库-3算法训练题_第3页
第3页 / 共47页
蓝桥杯练习题库-3算法训练题_第4页
第4页 / 共47页
蓝桥杯练习题库-3算法训练题_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《蓝桥杯练习题库-3算法训练题》由会员分享,可在线阅读,更多相关《蓝桥杯练习题库-3算法训练题(47页珍藏版)》请在金锄头文库上搜索。

1、 算法训练 图形显示 时间限制:1.0s 存限制:512.0MB 查看参考代码 锦囊1锦囊2锦囊3问题描述编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形5表示行数:* * * * * * * * * * *#includeint main()int i,j,a100100,n; while(scanf(%d,&n)!=EOF) for(i=0;in;i+)for(j=0;jn-i;j+) printf(*); if(j!=n-i-1) printf( ); if(j=n-1-i) printf(n); 算法训练 排序 时间限制:1.0s 存限制:512.0MB 查看参考代码

2、 锦囊1锦囊2锦囊3问题描述编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进展排列。输入格式:输入只有一行,即三个整数,中间用空格隔开。输出格式:输出只有一行,即排序后的结果。输入输出样例样例输入9 2 30样例输出30 9 2#include#include#define num 100int main(void)int i,j,t,a3=0;for (i=0;i3;i+)scanf(%d,&ai);for (i=0;i3;i+)for (j=i;j3;j+)if (ai=aj)t=ai;ai=aj;aj=t;for (i=0;i3;i+)printf(%d,ai);if(i

3、!=2) printf( );printf(n);return 0; 算法训练 2的次幂表示 时间限制:1.0s 存限制:512.0MB 查看参考代码 锦囊1锦囊2锦囊3问题描述任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=27+23+20现在约定幂次用括号来表示,即ab表示为ab此时,137可表示为:27+23+20进一步:7=22+2+20 21用2表示3=2+20所以最后137可表示为:222+2+20+22+20+20又如:1315=210+28+25+2+1所以131

4、5最后可表示为:222+20+2+222+20+222+20+2+20输入格式正整数1=n=20000输出格式符合约定的n的0,2表示在表示中不能有空格样例输入137样例输出2(2(2)+2+2(0)+2(2+2(0)+2(0)样例输入1315样例输出2(2(2+2(0)+2)+2(2(2+2(0)+2(2(2)+2(0)+2+2(0)提示用递归实现会比拟简单,可以一边递归一边输出#include int l=0;char temp1000=0;void show(int n) if(n=0) templ=0;l+;return ; if(n=2) templ=2,l+;return ; in

5、t a15=0,i=0,j; while(n!=0) ai=n%2; n/=2; i+; for(j=i-1;j=0;j-) if(aj=1) if(j=1) if(templ-1=) | templ-1=2 ) templ=+;l+;templ=2;l+; else if(templ-1=) | templ-1=2 ) templ=+;l+;templ=2;l+;templ=(;l+; show(j); templ=);l+; int main()int n;scanf(%d,&n);show(n);printf(%s,temp); return 0;算法训练 前缀表达式 时间限制:1.0s

6、 存限制:512.0MB 查看参考代码 锦囊1锦囊2锦囊3问题描述编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2,其中,运算符为“+加法、“-减法、“*乘法或“/除法,运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。输入格式:输入只有一行,即一个前缀表达式字符串。输出格式:输出相应的计算结果如果是除法,直接采用c语言的“/运算符,结果为整数。输入输出样例样例输入+ 5 2样例输出7#includeint main() int a2; int i,j; char c=getcha

7、r(); for(i=0;i2;i+) scanf(%d,&ai); if(c=+) j=a0+a1; else if(c=-) j=a0-a1; else if(c=*) j=a0*a1; else if(c=/) j=a0/a1; printf(%d,j); return 0;算法训练 Anagrams问题 时间限制:1.0s 存限制:512.0MB 查看参考代码 锦囊1锦囊2锦囊3问题描述Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母不区分大小写所出现的次数都是一样的。例如,“Unclear和“Nuclear、“Rimon和“MinOR都是Anagrams

8、。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。输入格式:输入有两行,分别为两个单词。输出格式:输出只有一个字母Y或N,分别表示Yes和No。输入输出样例样例输入UnclearNuclear样例输出Y#include void sort(char a,int len)int i,j,max;for(i=0;ilen;i+)max=i;for(j=i+1;jamax) max=j;j=ai;ai=amax;amax=j;void strtoupper(char a,int len)int i;for(i=0;i

9、=a & ai=z) ai-=32;int mystrcmp(char a,int l1,char b,int l2)if(l1!=l2) return 0;int i;for(i=0;il1;i+)if(ai!=bi) return 0;return 1;int mystrlen(char *p)int l=0;while(*p+!=0)l+;return l;int main()char s11000=0,s21000=0;int l1,l2;scanf(%s%s,s1,s2);l1=mystrlen(s1);l2=mystrlen(s2);strtoupper(s1,l1);strtou

10、pper(s2,l2);sort(s1,l1);sort(s2,l2); if(mystrcmp(s1,l1,s2,l2) printf(Y); else printf(N);return 0;算法训练 出现次数最多的整数 时间限制:1.0s 存限制:512.0MB 查看参考代码 锦囊1锦囊2锦囊3问题描述编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进展统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数一样,即并列第一,那么只打印比拟小的那个值。输入格式:第一行是一个整数N,N 20;

11、接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。输出格式:输出只有一行,即出现次数最多的那个元素值。输入输出样例样例输入5100150150200250样例输出150#include int main()int n,i,j,t,max=1,num=0;scanf(%d,&n);if(n0)int an;for(i=0;in;i+)scanf(%d,a+i);j=num=a0;t=1;for(i=1;imax)max=t;num=ai; elset=1;j=ai;printf(%d,num);return 0; 算法训练 字串统计 时间限制:1.0s 存限制:512.0MB 查看参考代码 锦囊1锦囊2锦囊3问题描述给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串不同的出现可以相交,如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式第一行一个数字L。第二行是字符串S。L大于0,且不超过

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

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