从我开始刷杭电oj到现在已经差不多半个月了,这半个月主要是练习了C语言的题目,总共完成53题,排名31290名,经过50题左右的训练,现在已经较好的掌握了C语言习题的解法,接下来进入到算法相关的题目,12天完成31题。
2012
#include<stdio.h>
int main()
{
int x,y,i,m,n,j;
while(scanf("%d %d",&x,&y)!=EOF&&(x!=0||y!=0))
{
m=0;
flag=0;
for(i=x;i<=y;i++)
{
m=i*i+i+41;
for(j=2;j<m;j++) //从2开始遍历到m
{
if(m%j==0) //如果m%j等于0,说明m不是质数,将flag置为1
{
flag=1;
break;
}
}
}
if(flag==0)
printf("OK\n");
else printf("Sorry\n");
}
return 0;
}
2013
#include<stdio.h>
int main()
{
int n,sum;
while(scanf("%d",&n)!=EOF)
{
sum=1;
while(--n)
{
sum=(sum+1)*2; //猴子将桃子吃掉一半多一个,那前一天的总和为(sum+1)*2
}
printf("%d\n",sum);
}
return 0;
}
2014
#include<stdio.h>
int main()
{
int n,i;
double min,max,a[100],sum,score;
while(scanf("%d",&n)!=EOF)
{
min=99999,max=0,sum=0;
for(i=0;i<n;i++)
{
scanf("%lf",&a[i]);
if(a[i]>max) max=a[i]; //找出评分中的最大值
if(a[i]<min) min=a[i]; //找出评分中的最小值
sum=sum+a[i]; //所有评分相加
}
sum=sum-max-min; //总分减去最大值和最小值
score=sum/(n-2); //求出平均分
printf("%.2lf\n",score);
}
return 0;
}
2015
#include<stdio.h>
int main()
{
int n,m,i,sum;
int aver;
while(scanf("%d%d",&n,&m)!=EOF)
{
sum=0; //清洗数据
aver=0;
for(i=1;i<n+1;i++) //因为数列的第一项为2,将i的初值赋为1,,方便下面求和
{
sum=sum+i*2; //求和
if(i%m==0)
{
aver=sum/m; //m项的平均值
if(i==n) //错误所在 输出最后一个数时不用空格
printf("%d\n",aver);
else
printf("%d ",aver); //每输出一项就要空格 很多题要用到这种格式
sum=0; //将sum置零 最后记得将sum置零
}
if(i==n&&(n%m!=0)) //最后不足m个数时,求平均值
printf("%d\n",sum/(i%m));
}
}
return 0;
}
2016
#include<stdio.h>
int main()
{
int n,a[100],min,k,temp,i;
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
min=99999;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<min) //找到最小的值的位置i并用k记录
{
min=a[i];
k=i;
}
}
temp=a[0]; 将k的位置和o的位置上的数交换
a[0]=a[k];
a[k]=temp;
for(i=0;i<n;i++)
{
if(i==n-1)
printf("%d\n",a[i]);
else