上文链接:蓝桥杯之用筛法求之N内的素数-极度简化(c++实现)
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。
算法展示
#include<iostream>
using namespace std;
int main()
{
int n,temp;//定义输入:数n、暂存变量temp
cin>>n;
int max,min,sum;//定义最大值max,最小值min,和值sum
cin>>temp;
max = min = sum = temp;//初始化max,min,sum
//计算max,min,sum
for(int i=1;i<n;i++)
{
cin>>temp;
if(max<temp)max = temp;
if(min>temp)min = temp;
sum+=temp;
}
//打印输出
cout<<max<<"\n"<<min<<"\n"<<sum<<endl;
return 0;
}
##该算法之我的思想
- 我采用临时变量代替数组存储n个数,每次处理一个,边赋值边计算。这样减少for循环次数,进而减少运行时间
- 应注意点是n的取值范围从1到10000所以要考虑n=1时的情况,所以我初始化了max=min=sum=第一次值temp.