杭电oj刷题第一阶段(C语言)-记录
本文章为个人做题后经过上传验证后的记录,不一定是最优方法,欢迎交流最优方法
题目
前一部分做的时候没想着保存,所以少了一部分。。。可以去参考 杭电oj刷题第一阶段答案
回归水题
2012 素数判定
#include <stdio.h>
int main(void)
{
int x, y;
scanf("%d %d\n",&x,&y);
while(x!=0||y!=0)
{
int flag = 0;//素数标志
for(int n = x;n<=y;n++)
{
int m = n*n+n+41;
for(int i = 2;i<m;i++)
{
if(0==m%i)
{
flag=1;
break;
}
}
}
if(0==flag) {printf("OK\n");}
else {printf("Sorry\n");}
scanf("%d %d\n",&x,&y);
}
return 0;
}
2013 蟠桃记
前一天的数目为加1后乘2
#include <stdio.h>
int main(void)
{
int n;
while(scanf("%d\n",&n)!=EOF)
{
int sum = 1;
for(int i = n;i>1;i--)
{
sum = (sum+1)*2;
}
printf("%d\n",sum);
}
return 0;
}
2014 青年歌手大奖赛_评委会打分
#include <stdio.h>
int main(void)
{
int temp[100];
int n;
while(scanf("%d",&n) != EOF)
{
int sum = 0;
for(int i=0;i<n;i++)
{
scanf(" %d",&temp[i]);
sum += temp[i];
}
getchar();
int max = temp[0];
int min = temp[0];
for(int j=0;j<n;j++)
{
if(temp[j]>max) {max = temp[j];}
else if(temp[j]<min) {min = temp[j];}
}
double average;
printf("%.2f\n",(float)(sum-max-min)/(n-2));
}
return 0;
}
2015 偶数求和
#include <stdio.h>
int main(void)
{
int n, m;
while(scanf("%d %d\n",&n,&m) != EOF)
{
int i;
for(i = 1;i+m<=n;i+=m)
{
printf("%d ",2*i + m-1);
}
printf("%d\n",n+i);
}
return 0;
}
2016 数据的交换输出
#include <stdio.h>
int main(void)
{
int n, num[100];
scanf("%d",&n);
while(n!=0)
{
scanf(" %d",&num[0]);
int min = num[0];
int flag = 0;
for(int i=1;i<n;i++)
{
scanf(" %d",&num[i]);
if(num[i]<min)
{
flag = i;
min = num[i];
}
}
int temp = num[flag];
num[flag] = num[0];
num[0] = temp;
for(int i=0;i<n;i++)
{
printf("%d",num[i]);
if(i==n-1) {printf("\n");}
else {printf(" ");}
}
scanf("%d",&n);
}
return 0;
}
2017 字符串统计
下面这个答案没有什么问题,但是我有点不理解我写的有什么问题,大家帮我看一下
杭电OJ刷题-2017 字符串统计-程序问题
#include<stdio.h>
#include<string.h>
int main(){
int n;
scanf("%d",&n);
char string[1000];
while(n--){
scanf("%s",&string);
int length=strlen(string);
int count=0;
for(int i=0;i<length;i++){
if(string[i]>='0'&&string[i]<='9'){
count++;
}
}
printf("%d\n",count);
}
return 0;
}
2018 母牛的故事
属于斐波拉契数列(递归输出)
f(n) = f(n-1) + f(n-3)
#include <stdio.h>
int f[56] = {0,1,2,3,4};
int main(void)
{
int n;
int fn;
scanf("%d\n",&n);
while(n!=0)
{
if(n<=4)
{
fn = n;
}
else
{
for(int i=5;i<=n;i++)
{
f[i] = f[i-1]+f[i-3];
fn = f[i];
}
}
printf("%d\n",fn);
scanf("%d\n",&n);
}
return 0;
}
版权声明:本文为weixin_43576926原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。