一、2014题评委打分
AC代码:
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{ int n,s[100];
while(cin>>n)
{ int max=0,min=0,sum=0;
for(int i=0;i<n;++i)
{ cin>>s[i];
if(i==0)
{ min=s[i];
max=s[i];
}
if(s[i]>max)
max=s[i];
if(s[i]<min)
min=s[i];
sum+=s[i];
//cout<<sum<<" "<<MAX<<" "<<MIN<<endl;
}
sum=sum-min-max;
float ave;
ave=(float)sum/(float)(n-2);
cout<<fixed<<setprecision(2)<<ave<<endl;
}
return 0;
}
注意寻找最大值和最小值的方式。
二、2018母牛的故事
可以用递归和非递归的方法AC。
非递归:
#include <iostream>
#include<string>
#include<cctype>
using namespace std;
int main()
{
int m;int a[60];
while (cin>>m&&m)
{
for(int i=0;i<=m;i++)
{
if(i<5)
a[i]=i;
if(i>=5)
a[i]=a[i-1]+a[i-3];
}
cout<<a[m]<<endl;
}
}
(去年的牛)+(新生的小牛),(新生的小牛)=(四年前的牛),因为(四年前的牛)都有生育能力,对应下来就是(i-3)
递归:
#include<iostream>
using namespace std;
int num(int n)
{
if(n==1)
return 1;
if(n==2)
return 2;
if(n==3)
return 3;
if(n==4)
return 4;
return num(n-1)+num(n-3);
}
int main()
{
int n;
while(cin>>n)
{
if(n==0)
break;
cout<<num(n)<<endl;
}
return 0;
}