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

合集下载

蓝桥杯练习题库 3算法训练之VIP题综述

蓝桥杯练习题库 3算法训练之VIP题综述

算法训练黑白无常时间限制:1.0s 内存限制:256.0MB查看参考代码问题描述某寝室的同学们在学术完之后准备玩一个游戏:游戏是这样的,每个人头上都被贴了一张白色或者黑色的纸,现在每个人都会说一句话“我看到x张白色纸条和y张黑色的纸条”,又已知每个头上贴着白色纸的人说的是真话、每个头上贴着黑色纸的人说的是谎话,现在要求你判断哪些人头上贴着的是白色的纸条,如果无解输出“NoSolution.”;如果有多组解,则把每个答案中贴白条的人的编号按照大小排列后组成一个数(比如第一个人和第三个人头上贴着的是白纸条,那么这个数就是13;如果第6、7、8个人都贴的是白纸条,那么这个数就是678)输出最小的那个数(如果全部都是黑纸条也满足情况的话,那么输出0)输入格式第一行为一个整数n,接下来n行中的第i行有两个整数x和y,分别表示第i个人说“我看到x张白色纸条和y张黑色的纸条”。

输出格式一行。

如果无解输出“NoSolution.”。

否则输出答案中数值(具体见问题描述)最小的那个,如果全部都是黑纸条也满足情况的话,那么输出0样例输入21 01 0样例输出样例输入53 10 41 34 01 3样例输出35数据规模和约定n<=8#include <stdio.h>#include <math.h>int n;int x[8],y[8];int isok(int a[],int num,int value) //第i个人的话是否成立num为人下标value 为0白或者1黑{int black=0,white=0,i;for(i=0;i<n;i++){if(i!=num){if(a[i]) black++; //黑色else white++; //白色}}if(value) //黑{if(x[num]==white && y[num]==black) return 0;else return 1;}else //白{if(x[num]==white && y[num]==black) return 1;else return 0;}}int main(){int i,j,k,sign,min=90000000,num;int a[8],b[8];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",x+i,y+i);for(i=0;i<pow(2,n);i++){k=i;for(j=0;j<n;j++){a[j]=k%2;k/=2;}sign=1;for(j=0;j<n;j++){if(isok(a,j,a[j])==0){sign=0;break;}}if(sign){k=1;num=0;for(j=n-1;j>=0;j--){if(a[j]==0){num+=k*(j+1);k*=10;}}if(num<min) min=num;}}if(min==90000000) printf("NoSolution.");else{for(i=0;i<n;i++)b[i]=1;for(i=0;i<n;i++){if(isok(b,i,b[i])==0){sign=0;break;}}if(sign==0) printf("%d",min);else printf("0");}return 0;}#include<stdio.h>#include<string.h>#include<math.h>int mt[9][2],n;int max[9]={9};int xl[9]={9};bool ifc();int main(){int i,j,m,fi,k,flag;scanf("%d",&n);for(i=1;i<=n;i++) scanf("%d %d",&mt[i][0],&mt[i][1]);m=pow(2,n);for(i=0;i<m;i++){for(fi=i,j=1,xl[0]=0;j<=n;j++){xl[j]=fi&1;fi>>=1;if(xl[j]) xl[0]++;//真话数量}if(xl[0]>max[0]) continue;if(ifc())//成立{// for(k=1;k<=n;k++) printf("%d",xl[k]);// printf(" :%d\n",xl[0]);if(max[0]==xl[0]){for(flag=k=1;k<=n;k++){if(max[k]>xl[k]){flag=0;break;}else if(max[k]<xl[k]){break;}}if(!flag) continue;}for(k=0;k<=n;k++) max[k]=xl[k];}}if(max[0]==9) printf("NoSolution.\n");else if(max[0]==0) printf("0\n");else{for(i=1;i<=n;i++) if(max[i]) printf("%d",i);putchar('\n');}}bool ifc(){int i;for(i=1;i<=n;i++){if(xl[i])//若此人说真话{if(mt[i][0]!=xl[0]-1) return false;}else{if(mt[i][0]==xl[0]) return false;}}return true;}算法训练数的统计时间限制:1.0s 内存限制:256.0MB查看参考代码问题描述在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。

第八届c语言蓝桥杯试题及答案

第八届c语言蓝桥杯试题及答案

第八届c语言蓝桥杯试题及答案第八届C语言蓝桥杯试题及答案1. 选择题1.1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. intD. _variable1.2. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void1.3. C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[] = 'Hello';C. string str = "Hello";D. char str = "Hello";2. 填空题2.1. 在C语言中,用于定义一个整型数组的关键字是______。

2.2. 以下代码段的输出结果是______。

```cint main() {int a = 5;printf("%d", a++);return 0;}```2.3. C语言中,用于定义一个结构体的关键字是______。

3. 编程题3.1. 编写一个C语言程序,计算并输出100以内所有偶数的和。

3.2. 设计一个C语言函数,实现字符串反转的功能。

答案1. 选择题1.1. D1.2. D1.3. A2. 填空题2.1. int2.2. 52.3. struct3. 编程题3.1. 样例代码:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 100; i++) {if(i % 2 == 0) {sum += i;}}printf("Sum of even numbers: %d\n", sum); return 0;}```3.2. 样例代码:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int length = strlen(str);for(int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello";reverse(str);printf("Reversed string: %s\n", str);return 0;}```。

第四届蓝桥杯c语言试题及答案

第四届蓝桥杯c语言试题及答案

第四届蓝桥杯c语言试题及答案第四届蓝桥杯C语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. C语言中,用于定义一个整型数组的语句是?A. int array[10];B. int [10] array;C. int array[];D. int [10] array[];答案:A3. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C4. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A5. 下列哪个选项不是C语言中的运算符?A. %B. &&C. :D. ==答案:C6. 在C语言中,哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A7. C语言中,下列哪个选项不是标准输入输出库函数?A. printfB. scanfC. getcharD. malloc答案:D8. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. while答案:B9. 在C语言中,下列哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C10. C语言中,下列哪个选项是合法的二进制常量?A. 0b1010B. 0x1AC. 0101D. 0b2答案:A二、程序填空题(每题5分,共20分)1. 请填写下列程序中缺失的部分,使其能够正确计算并输出100以内的奇数之和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 1) {sum += i;}}printf("Sum of odd numbers: %d\n", sum);return 0;}```答案:程序已完整,无需填空。

蓝桥杯部分题目(含答案)

蓝桥杯部分题目(含答案)

1、未名湖边的烦恼关键词:递归,蓝桥杯,算法问题描述每年冬天,北大未名湖上都是滑冰的好地方。

北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。

每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。

现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。

(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式两个整数,表示m和n输出格式一个整数,表示队伍的排法的方案数。

样例输入3 2样例输出5数据规模和约定m,n∈[0,18]#include "iostream"#include "cstdio"#include "cmath"#include "algorithm"#include "map"using namespace std;int f(int m,int n){if(m<n) return 0;if(n==0) return 1;return f(m,n-1)+f(m-1,n);}int main(){int m,n;scanf("%d%d",&m,&n);int ans=f(m,n);printf("%d\n",ans);return 0;}2.标题:蚂蚁感冒关键词:结构体排序,蓝桥杯【题目描述】长100厘米的细长直杆子上有n只蚂蚁。

它们的头有的朝左,有的朝右。

每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。

当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。

这些蚂蚁中,有1只蚂蚁感冒了。

并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。

请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。

【数据格式】第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。

大学生蓝桥杯试题及答案

大学生蓝桥杯试题及答案

大学生蓝桥杯试题及答案一、选择题(每题2分,共20分)1. 在计算机科学中,通常用什么来表示一个算法的效率?A. 时间复杂度B. 空间复杂度C. 算法的可读性D. 算法的可维护性答案:A2. 下列哪种数据结构在插入和删除操作时不需要移动其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个选项是面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、封装、多态D. 封装、继承、抽象答案:A4. 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <title>D. <header>答案:A5. 在数据库管理系统中,用于从数据库中检索数据的SQL语句是?A. INSERTB. UPDATEC. DELETED. SELECT答案:D6. 在Java中,用于定义一个类的方法的关键字是什么?A. classB. methodC. functionD. public答案:D7. 在C语言中,用于声明一个变量为静态存储的关键字是什么?A. staticB. externC. registerD. auto答案:A8. 在Python中,用于定义一个函数的关键字是什么?A. defB. functionC. methodD. class答案:A9. 在操作系统中,用于管理进程的调度和资源分配的组件是什么?A. 文件系统B. 内存管理C. 进程管理器D. 设备驱动程序答案:C10. 以下哪个协议是用于在互联网上发送电子邮件的?A. HTTPB. FTPC. SMTPD. TCP答案:C二、填空题(每题2分,共20分)1. 在计算机科学中,________是用来衡量算法在最坏情况下执行时间的量度。

答案:时间复杂度2. 在数据结构中,________是一种允许在任意位置插入和删除数据的线性数据结构。

蓝桥杯scr考级题库

蓝桥杯scr考级题库

蓝桥杯scr考级题库
蓝桥杯SCR考级题库是为广大编程爱好者提供的一套全面的编程题库,其中包含了丰富的编程题目,涵盖了各种难度和类型的题目,是学习和提高编程能力的好帮手。

这套题库不仅适用于蓝桥杯考试,也可以作为平时练习编程的素材。

题库中的题目设计非常严谨,能够全面考察学生的编程能力和逻辑思维能力。

通过做题,可以帮助学生查漏补缺,提高编程水平,为日后的编程竞赛或者工作打下坚实的基础。

以下是蓝桥杯SCR考级题库的一道题目:
题目:计算1+2+3+...+100的和
```python
#请编写一个程序,计算1+2+3+...+100的和,并输出结果
sum=0
for i in range(1,101):
sum+=i
print("1+2+3+...+100的和为:",sum)
```
通过这道题目的编程练习,可以帮助学生巩固循环和变量的概念,培养学生对编程的兴趣和热情。

蓝桥杯SCR考级题库还包含了大量的其他题目,涵盖了各种编程语言和难度,学生可以根据自己的实际情况选择适合自己的题目进行练习。

在学习过程中,若遇到困难,也可以通过查阅相关资料或者向老师、同学请教来解决问题。

总的来说,蓝桥杯SCR考级题库是一个非常有用的编程练习资源,能够帮助学生提高编程能力,为日后的学习和工作打下坚实的基础。

希望广大编程爱好者能够充分利用这个资源,不断提升自己的编程水平。

蓝桥杯练习题库 3算法训练之VIP题.

蓝桥杯练习题库 3算法训练之VIP题.

算法训练黑白无常时间限制:1.0s 内存限制:256.0MB查看参考代码问题描述某寝室的同学们在学术完之后准备玩一个游戏:游戏是这样的,每个人头上都被贴了一张白色或者黑色的纸,现在每个人都会说一句话“我看到x张白色纸条和y张黑色的纸条”,又已知每个头上贴着白色纸的人说的是真话、每个头上贴着黑色纸的人说的是谎话,现在要求你判断哪些人头上贴着的是白色的纸条,如果无解输出“NoSolution.”;如果有多组解,则把每个答案中贴白条的人的编号按照大小排列后组成一个数(比如第一个人和第三个人头上贴着的是白纸条,那么这个数就是13;如果第6、7、8个人都贴的是白纸条,那么这个数就是678)输出最小的那个数(如果全部都是黑纸条也满足情况的话,那么输出0)输入格式第一行为一个整数n,接下来n行中的第i行有两个整数x和y,分别表示第i个人说“我看到x张白色纸条和y张黑色的纸条”。

输出格式一行。

如果无解输出“NoSolution.”。

否则输出答案中数值(具体见问题描述)最小的那个,如果全部都是黑纸条也满足情况的话,那么输出0样例输入21 01 0样例输出样例输入53 10 41 34 01 3样例输出35数据规模和约定n<=8#include <stdio.h>#include <math.h>int n;int x[8],y[8];int isok(int a[],int num,int value) //第i个人的话是否成立num为人下标value 为0白或者1黑{int black=0,white=0,i;for(i=0;i<n;i++){if(i!=num){if(a[i]) black++; //黑色else white++; //白色}}if(value) //黑{if(x[num]==white && y[num]==black) return 0;else return 1;}else //白{if(x[num]==white && y[num]==black) return 1;else return 0;}}int main(){int i,j,k,sign,min=90000000,num;int a[8],b[8];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",x+i,y+i);for(i=0;i<pow(2,n);i++){k=i;for(j=0;j<n;j++){a[j]=k%2;k/=2;}sign=1;for(j=0;j<n;j++){if(isok(a,j,a[j])==0){sign=0;break;}}if(sign){k=1;num=0;for(j=n-1;j>=0;j--){if(a[j]==0){num+=k*(j+1);k*=10;}}if(num<min) min=num;}}if(min==90000000) printf("NoSolution.");else{for(i=0;i<n;i++)b[i]=1;for(i=0;i<n;i++){if(isok(b,i,b[i])==0){sign=0;break;}}if(sign==0) printf("%d",min);else printf("0");}return 0;}#include<stdio.h>#include<string.h>#include<math.h>int mt[9][2],n;int max[9]={9};int xl[9]={9};bool ifc();int main(){int i,j,m,fi,k,flag;scanf("%d",&n);for(i=1;i<=n;i++) scanf("%d %d",&mt[i][0],&mt[i][1]);m=pow(2,n);for(i=0;i<m;i++){for(fi=i,j=1,xl[0]=0;j<=n;j++){xl[j]=fi&1;fi>>=1;if(xl[j]) xl[0]++;//真话数量}if(xl[0]>max[0]) continue;if(ifc())//成立{// for(k=1;k<=n;k++) printf("%d",xl[k]);// printf(" :%d\n",xl[0]);if(max[0]==xl[0]){for(flag=k=1;k<=n;k++){if(max[k]>xl[k]){flag=0;break;}else if(max[k]<xl[k]){break;}}if(!flag) continue;}for(k=0;k<=n;k++) max[k]=xl[k];}}if(max[0]==9) printf("NoSolution.\n");else if(max[0]==0) printf("0\n");else{for(i=1;i<=n;i++) if(max[i]) printf("%d",i);putchar('\n');}}bool ifc(){int i;for(i=1;i<=n;i++){if(xl[i])//若此人说真话{if(mt[i][0]!=xl[0]-1) return false;}else{if(mt[i][0]==xl[0]) return false;}}return true;}算法训练数的统计时间限制:1.0s 内存限制:256.0MB查看参考代码问题描述在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。

蓝桥杯c语言历年试题及答案

蓝桥杯c语言历年试题及答案

蓝桥杯c语言历年试题及答案蓝桥杯C语言历年试题及答案1. 题目:求两个整数的最大公约数(GCD)。

答案:可以使用辗转相除法(欧几里得算法)来求解两个整数的最大公约数。

2. 题目:编写一个函数,实现字符串的反转。

答案:可以使用双指针法,一个指针指向字符串的开头,另一个指向字符串的结尾,然后交换这两个指针所指向的字符,直到两个指针相遇。

3. 题目:计算一个整数数组中所有元素的和。

答案:遍历数组中的每个元素,并将它们累加到一个变量中。

4. 题目:判断一个整数是否是素数。

答案:如果一个数大于1,且除了1和它本身外,不能被其他自然数整除,则它是素数。

5. 题目:实现一个函数,计算一个整数的阶乘。

答案:可以使用递归或循环来实现。

递归方法中,n的阶乘等于n 乘以(n-1)的阶乘。

6. 题目:编写一个程序,实现字符串的去重。

答案:可以使用哈希表来存储已经出现过的字符,遍历字符串时,如果字符未出现过,则将其添加到结果字符串中。

7. 题目:实现一个函数,计算数组中每个元素出现的次数。

答案:可以使用哈希表来存储每个元素及其出现的次数。

8. 题目:编写一个程序,实现二分查找算法。

答案:二分查找算法的基本思想是将数组分为两部分,取中间元素与目标值比较,如果相等,则找到目标值;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找。

9. 题目:实现一个函数,计算一个整数的各位数字之和。

答案:可以使用循环,每次取整数的最后一位数字,然后将其加到一个变量中,并将整数除以10。

10. 题目:编写一个程序,实现快速排序算法。

答案:快速排序算法是一种分治法策略,通过选择一个基准值,将数组分为两部分,一部分包含小于基准值的元素,另一部分包含大于基准值的元素,然后递归地对这两部分进行快速排序。

以上是蓝桥杯C语言历年试题及答案的示例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法训练图形显示时间限制:1.0s 内存限制:512.0MB查看参考代码问题描述编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数):* * * * ** * * ** * ** **#include<stdio.h>int main(){int i,j,a[100][100],n;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)for(j=0;j<n-i;j++){printf("*");if(j!=n-i-1)printf(" ");if(j==n-1-i)printf("\n");}}}算法训练排序时间限制:1.0s 内存限制:512.0MB查看参考代码问题描述编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。

输入格式:输入只有一行,即三个整数,中间用空格隔开。

输出格式:输出只有一行,即排序后的结果。

输入输出样例样例输入9 2 30样例输出30 9 2#include<stdio.h>#include<stdlib.h>#define num 100int main(void){int i,j,t,a[3]={0};for (i=0;i<3;i++){ scanf("%d",&a[i]);}for (i=0;i<3;i++)for (j=i;j<3;j++)if (a[i]<=a[j]){t=a[i];a[i]=a[j];a[j]=t;}for (i=0;i<3;i++){ printf("%d",a[i]);if(i!=2) printf(" ");}printf("\n");return 0;}算法训练2的次幂表示时间限制:1.0s 内存限制:512.0MB查看参考代码问题描述任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。

将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0现在约定幂次用括号来表示,即a^b表示为a(b)此时,137可表示为:2(7)+2(3)+2(0)进一步:7=2^2+2+2^0 (2^1用2表示)3=2+2^0所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315=2^10+2^8+2^5+2+1所以1315最后可表示为:2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)输入格式正整数(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 <stdio.h>int l=0;char temp[1000]={0};void show(int n){if(n==0) {temp[l]='0';l++;return ;}if(n==2) { temp[l]='2',l++;return ; }int a[15]={0},i=0,j;while(n!=0){a[i]=n%2;n/=2;i++;}for(j=i-1;j>=0;j--)if(a[j]==1){if(j==1){if(temp[l-1]==')' || temp[l-1]=='2' ) {temp[l]='+';l++;}temp[l]='2';l++;}else{if(temp[l-1]==')' || temp[l-1]=='2' ) {temp[l]='+';l++;}temp[l]='2';l++;temp[l]='(';l++;show(j);temp[l]=')';l++;}}}int main(){int n;scanf("%d",&n);show(n);printf("%s",temp);return 0;}算法训练前缀表达式时间限制:1.0s 内存限制:512.0MB查看参考代码问题描述编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。

输入格式为:“运算符对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。

要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。

输入格式:输入只有一行,即一个前缀表达式字符串。

输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。

输入输出样例样例输入+ 5 2样例输出#include<stdio.h>int main(){ int a[2];int i,j;char c=getchar();for(i=0;i<2;i++)scanf("%d",&a[i]);if(c=='+')j=a[0]+a[1];else if(c=='-')j=a[0]-a[1];else if(c=='*')j=a[0]*a[1];else if(c=='/')j=a[0]/a[1];printf("%d",j);return 0;}算法训练Anagrams问题时间限制:1.0s 内存限制:512.0MB查看参考代码问题描述Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。

例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。

编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。

每一个单词的长度不会超过80个字符,而且是大小写无关的。

输入格式:输入有两行,分别为两个单词。

输出格式:输出只有一个字母Y或N,分别表示Yes和No。

输入输出样例样例输入UnclearNuclear样例输出Y#include <stdio.h>void sort(char a[],int len){int i,j,max;for(i=0;i<len;i++){max=i;for(j=i+1;j<len;j++)if(a[j]>a[max]) max=j;j=a[i];a[i]=a[max];a[max]=j;}}void strtoupper(char a[],int len){int i;for(i=0;i<len;i++)if(a[i]>='a' && a[i]<='z') a[i]-=32;}int mystrcmp(char a[],int l1,char b[],int l2) {if(l1!=l2) return 0;int i;for(i=0;i<l1;i++)if(a[i]!=b[i]) return 0;return 1;}int mystrlen(char *p){int l=0;while(*p++!=0)l++;return l;}int main(){char s1[1000]={0},s2[1000]={0};int l1,l2;scanf("%s%s",s1,s2);l1=mystrlen(s1);l2=mystrlen(s2);strtoupper(s1,l1);strtoupper(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查看参考代码问题描述编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N 也是由用户输入的,最多不会超过20。

然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。

如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。

输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。

输出格式:输出只有一行,即出现次数最多的那个元素值。

输入输出样例样例输入5100150150200250样例输出150#include <stdio.h>int main(){int n,i,j,t,max=1,num=0;scanf("%d",&n);if(n>0){int a[n];for(i=0;i<n;i++)scanf("%d",a+i);j=num=a[0];t=1;for(i=1;i<n;i++)if(a[i]==j){++t;if(t>max){max=t;num=a[i];}}else{t=1;j=a[i];}printf("%d",num);}return 0;}算法训练字串统计时间限制:1.0s 内存限制:512.0MB查看参考代码问题描述给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。

输入格式第一行一个数字L。

第二行是字符串S。

L大于0,且不超过S的长度。

输出格式一行,题目要求的字符串。

输入样例1:4bbaabbaaaaa输出样例1:bbaa输入样例2:2bbaabbaaaaa输出样例2:aa数据规模和约定n<=60S中所有字符都是小写英文字母。

相关文档
最新文档