蓝桥杯——计算机研究生机试真题改编+情景拓展(2017.2.9)
来源:互联网 发布:简易返利源码 编辑:程序博客网 时间:2024/06/04 18:57
样例输入:
ABC
abc
样例输出:
Equal
样例输入:
abcd
ABcdE
样例输出:
Not equal
源代码:
法一:直接使用strcasecmp函数(类似strcmp函数,但忽略字母大小写)
#include <stdio.h>#include <string.h>#define maxlen 81int main(){char str1[maxlen],str2[maxlen];while(scanf("%s",str1)!=EOF){scanf("%s",str2);if(strcasecmp(str1,str2)==0)printf("Equal\n");elseprintf("Not equal\n");}return 0;}法二:通过循环自主实现字符匹配
#include <stdio.h>#include <string.h>#define maxlen 81int main(){int i,flag;int len1,len2;char str1[maxlen],str2[maxlen];while(scanf("%s",str1)!=EOF){scanf("%s",str2);len1=strlen(str1);len2=strlen(str2);flag=1; //1-Equal 0-Not equalif(len1!=len2) //字符串长度不等,直接判断Not equal printf("Not equal\n");else{for(i=0;i<len1;i++){if(str1[i]!=str2[i] && (str1[i]-32)!=str2[i] && (str1[i]+32)!=str2[i]) //有不同字符,Not equal {flag=0;break;}}if(flag==1)printf("Equal\n");elseprintf("Not equal\n");}}return 0;}程序截图:
2. 货币问题
已知有面值为1元,2元,5元,10元,20元,50元,100元的货币若干(可认为无穷多),需支付价格为x的物品,并需要恰好支付,即没有找零产生。求,至少需要几张货币才能完成支付。
例如,若支付价格为12元的物品,最少需要一张10元和一张2元,即两张货币就可完成支付。
输入:包含多组测试数据,每组仅包含一个整数p(1<=p<=100000000),为需支付的物品价格。
输出:对于每组输入数据,输出仅一个整数,代表最少需要的货币张数。
样例输入:
10
11
13
样例输出:
1
2
3
源代码:
#include <stdio.h>int fun(int money[],int p){int i,t;int num=0;for(i=6;i>=0;i--) //从大到小遍历 {if(p>=money[i]){t=p/money[i]; //t为需要某种面值货币的张数 p-=(money[i]*t);num+=t;}}return num;}int main(){int p,count;int money[7]={1,2,5,10,20,50,100}; //money数组记录7种面值货币的张数 while(scanf("%d",&p)!=EOF){count=fun(money,p);printf("%d\n",count);}return 0;}程序截图:
3. 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
输入:每个输入文件包含一组测试案例。
对于每个测试案例,第一行输入一个n(n<100000),代表该数组中数字的个数。
接下来的一行输入n个整数。代表数组中的n个数。
输出:对应每个测试案例,输入一行n个数字,代表调整后的数组。
注意,数字和数字之间用一个空格隔开,最后一个数字后面没有空格。
样例输入:
5
1 2 3 4 5
样例输出:
1 3 5 2 4
源代码:
法一:另设两个数组分别保存奇偶数,然后分别输出(考虑到时间限制要求)
#include <stdio.h>#define maxn 100000void fun(int a[],int b[],int c[],int n){int i,j,t;int ji=0,ou=0;for(i=0;i<n;i++) //ji ou用于统计奇偶数个数 {if(a[i]%2==0)b[ou++]=a[i];elsec[ji++]=a[i];}for(i=0;i<ji;i++) //奇偶数分别输出,先奇后偶 printf("%d ",c[i]);for(i=0;i<ou-1;i++)printf("%d ",b[i]);printf("%d\n",b[ou-1]);}int main(){int i,n;int a[maxn],b[maxn],c[maxn];while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%d",&a[i]);fun(a,b,c,n);}return 0;}
法二:类似冒泡排序,进行n-1轮比较,每轮比较中又包含n-1趟比较(但此方法对规模较大的数据不适用,会出现TLE(超时)问题)
#include <stdio.h>#define maxn 100000void fun(int a[],int n){int i,j,t;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]%2==0 && a[j+1]%2!=0){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<n-1;i++)printf("%d ",a[i]);printf("%d\n",a[n-1]);}int main(){int i,n;int a[maxn],b[maxn],c[maxn];while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%d",&a[i]);fun(a,n);}return 0;}程序截图:
- 蓝桥杯——计算机研究生机试真题改编+情景拓展(2017.2.9)
- 蓝桥杯——计算机研究生机试真题(2017.2.14)
- 蓝桥杯——计算机研究生机试真题(2017.2.15)
- 蓝桥杯——计算机研究生机试真题(2017.2.16)
- 蓝桥杯——计算机研究生机试真题(2017.2.17)
- 蓝桥杯——计算机研究生机试真题(2017.2.18)
- 蓝桥杯——计算机研究生机试真题(2017.2.19)
- 蓝桥杯——计算机研究生机试真题(2017.2.20)
- 蓝桥杯——计算机研究生机试真题(2017.2.21)
- 蓝桥杯——计算机研究生机试真题(2017.2.22)
- 蓝桥杯——计算机研究生机试真题(2017.2.28)
- 蓝桥杯——计算机研究生机试真题(2017.3.1)
- 蓝桥杯——2010 HIT计算机研究生机试真题(2017.2.1)
- 蓝桥杯——2014 HIT计算机研究生机试真题(2017.2.2)
- 蓝桥杯——2009 北航计算机研究生机试真题(2017.2.4)
- 蓝桥杯——2010 吉大计算机研究生机试真题(2017.2.5)
- 蓝桥杯——2011 吉大计算机研究生机试真题(节选,2017.2.6)
- 蓝桥杯——2015 西工大计算机研究生机试真题(节选,2017.2.7)
- 设计模式六大原则(4):接口隔离原则
- PHP-正则表达式随笔
- android xml转义符
- curl 登录https网站
- vs2013 c++ 编译配置jsoncpp和使用jsoncpp解析json文件
- 蓝桥杯——计算机研究生机试真题改编+情景拓展(2017.2.9)
- DS1302时钟数码管显示
- JVM内存参数详解,以及GC回收参数详解
- ACM 进阶学习第一课----简单数学问题之同余相关
- 7.5路径寻找问题
- PAT甲级1017
- 如何使用阿里云搭建个人网站
- #191. 搞笑的代码
- eclipse下的Servers工程与Tomcat的关系