动态数组使用
试题 算法训练 动态数组使用资源限制时间限制:1.0s 内存限制:512.0MB从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。样例输入:53 4 0 0 2样例输出:9 1样例输入:73 2 7 5 2 9 1样例输出:29 4
//动态数组使用#include<iostream>#include<vector>#include<numeric>using namespace std;int main(){ vector<int> a; int b; int n; cin>>n; for(int i=0;i<n;i++){ cin>>b; a.push_back(b); } int sum=accumulate(a.begin(),a.end(),0); //vector元素求和函数,必须引入头文件mumeric float average=sum/n; cout&l ...
前缀表达式
试题 算法训练 前缀表达式资源限制时间限制:1.0s 内存限制:512.0MB问题描述 编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。 输入格式:输入只有一行,即一个前缀表达式字符串。 输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。 输入输出样例样例输入
5 2样例输出7第一次写的是这样,没有按照题目做法来,直接按照自己的想法来的
#include<iostream>using namespace std;int Mutiply(int a,int b){ return a*b;}int Except(int a,int b){ return a/b;}int Add(int a,int b){ return a+b; ...
十进制转2进制输出
试题 算法训练 十进制转2进制输出资源限制时间限制:1.0s 内存限制:256.0MB问题描述 编写递归函数,实现将一个十进制的正整数以二进制的形式输出。 注:不考虑符号位,仅从二进制数不为0的最高位开始输出。输入格式 一个十进制正整数输出格式 该整数对应的二进制数样例输入一个满足题目要求的输入范例。例:96样例输出与上面的样例输入对应的输出。例:1100000数据规模和约定 输入为正整数
#include<iostream>using namespace std;void Transform(int n){ if(n>0){ Transform(n/2); cout<<n%2; } else return;}int main(){ int a; cin>>a; Transform(a); return 0;}
图形显示
试题 算法训练 图形显示资源限制时间限制:1.0s 内存限制:512.0MB问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数):
* * *
这里要注意最后一行,以及*中间有空格
#include<iostream>using namespace std;int main(){ int a; cin>>a; for(int i=0;i<a;i++){ for(int j=a-i;j>0;j--){ cout<<"* "; } if(i!=a-1){ cout<<endl; } } return 0;}
大小写转换
大小写转换资源限制时间限制:1.0s 内存限制:512.0MB问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。 输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。 输出格式:输出经过转换后的字符串。输入输出样例样例输入AeDb样例输出aEdB
//大小写转换#include<iostream>#include<string>using namespace std;int main(){ string a; cin>>a; for(int i=0;i<a.length();i++){ if(a[i]>=65&&a[i]<=90){ a[i]+=32; } else if(a[i]>=97&&a[i]<=122){ a[i]-=32; } ...
字符串的操作
试题 算法提高 字符串的操作资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给出一个字符串S,然后给出q条指令,分别有4种:
1. Append str 表示在S的最后追加一个字符串str。 例: 原字符串:ABCDE 执行 Append FGHIJ 后 字符串变为:ABCDEFGHIJ
2. Insert x str 表示在位置x处插入一个字符串str。(输入保证0<x<=当前字符串长度) 例: 原字符串:ABCGHIJ 执行 Insert 4 DEF 后 字符串变为:ABCDEFGHIJ
3. Swap a b c d 表示交换从第a位到第b位的字符串与从第c位到第d位的字符串。(输入保证0<a<b<c<d<=当前字符串长度) 例: 原字符串:ABGHIFCDEJ 执行 Swap 3 5 7 9后 字符串变为:ABCDEFGHIJ
4. Reverse a b 表示将从第a位到第b位的字符串反转。(输入保证0<a<b<=当前字符串长度) 例: 原字符 ...
寻找数组中最大值
试题 算法训练 寻找数组中最大值资源限制时间限制:1.0s 内存限制:512.0MB问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标。输入格式 整数数组a[],数组元素个数小于1等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。输出格式 输出最大值,及其下标样例输入33 2 1
样例输出
3 0
#include<iostream>using namespace std;int main(){ int a[100]; int num; cin>>num; for(int i=0;i<num;i++){ cin>>a[i]; } int max=a[0]; int index=0; for(int i=1;i<num;i++){ if(a[i]>=max){ max=a[i]; index=i; } } cout<<max<<" "<< ...
排序
试题 算法训练 排序资源限制时间限制:1.0s 内存限制:512.0MB问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。 输入格式:输入只有一行,即三个整数,中间用空格隔开。 输出格式:输出只有一行,即排序后的结果。 输入输出样例样例输入9 2 30样例输出30 9 2
#include<iostream>#include<vector>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a>b;}int main(){ vector<int> a; int b; for(int i=0;i<3;i++){ cin>>b; a.push_back(b); } sort(a.begin(),a.end(),cmp); for(int i=0;i<3;i++){ cout<<a[i]<<&qu ...
数字分组
试题 算法提高 数字分组资源限制时间限制:1.0s 内存限制:256.0MB问题描述 输入任意10个浮点数,根据它们的聚集程度划分为3组,输出每一组的平均值。 提供老师上课讲的一种思路:将10个数字进行在数轴上排序,然后计算每两个点间的距离,在所有的距离中选取两个最大距离处断开,这样就把10个数字分为了3组。 本题难度较大,如果深入讨论会比较复杂,大家可以只考虑如下面样例所示的分组情况非常简单的情况,只要简单情况能够成功计算,本题就能得分。
另外,本题内容有些超前,推荐大家自学一下数组那一章中第一节一维数组,然后使用一维数组来做。排序算法可以参考trustie平台上传的冒泡排序法参考资料。输入格式 十个待输入的浮点数,使用空格隔开输出格式 三组数的平均数,每输出一个需要换行样例输入一个满足题目要求的输入范例。例1:50.4 51.3 52.3 9.5 10.4 11.6 19.1 20.8 21.9 49.6
例2:8.6 7.4 3.5 17.9 19.1 18.5 37.6 40.4 38.5 40.0样例输出与上面的样例输入对应的输出。例1:10.520.65 ...
文章翻转
试题 算法训练 文章翻转资源限制时间限制:1.0s 内存限制:128.0MB问题描述 输入一段英文,不含标点,将这一段英文以单词为单位倒序输出输入格式 一段英文(段内不含换行),以换行符结尾。输出格式 一段英文(段内不含换行),以换行符结尾。样例输入aab TTR bbc loV DDE Znr CCD样例输出CCD Znr DDE loV bbc TTR aab数据规模和约定 60%的数据保证单词长度不超过20,字符长度不超过10^3 100%的数据保证单词长度不超过10^5,字符长度不超过10^6
#include<iostream>#include<string>using namespace std;int main(){ string A; getline(cin,A); int i,j; int l=0; for(i=A.length()-1;i>=0;i--){ l++; if(A[i]==' '){ cout<<A.substr(i+1,l)<< ...