Openjudge1.5答案

Openjudge1.5答案

01

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i;
	double average=0;
	for(i=0;i<n;i++)
	{
		int goal;
		scanf("%d",&goal);
		average+=goal;
	} 
	average/=n;
	printf("%.2f",average);
}

02

#include <stdio.h>
#include<math.h>
int main()
{
	double salary;
	double ave=0;
	int i;
	for(i=0;i<12;i++)
	{
		scanf("%lf",&salary);
		ave+=salary;
	}
	ave/=12;
	printf("$%.2f",ave);
}

03

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i;
	double x,ave;
	for(i=0;i<n;i++)
	{
		scanf("%lf",&x);
		ave+=x;
	}
	ave/=n;
	printf("%.4f",ave);
}

04

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i;
	int x;
	int sum=0;
	for(i=0;i<n;i++)
	{
		scanf("%d",&x);
		sum+=x;
	}
	printf("%d %.5f",sum,sum*1.0/n);
}

05

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int goal;
	int max=0;
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%d",&goal);
		if(goal>max)
		{
			max=goal;
		}
	}
	printf("%d",max);
}

06

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int x,i;
	//x为大于0小于1000的整数,因此应将min和max设为1000和0 
	int min=1000;
	int max=0;
	for(i=0;i<n;i++)
	{
		scanf("%d",&x);
		if(x<min)
		{
			min=x;
		}
		if(x>max)
		{
			max=x;
		}
	}
	printf("%d",max-min);
}

07

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int a[n][3];
	int i;
	int gold=0;
	int silver=0;
	int copper=0;
	for(i=0;i<n;i++)
	{
		scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);		
	}
	for(i=0;i<n;i++)
	{
		gold+=a[i][0];
	}
	for(i=0;i<n;i++)
	{
		silver+=a[i][1];
	}
	for(i=0;i<n;i++)
	{
		copper+=a[i][2];
	}
	printf("%d %d %d %d",gold,silver,copper,gold+silver+copper);
}

08

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int sum=(n-2)*180;
	int i,angle;
	for(i=0;i<n-1;i++)
	{
		scanf("%d",&angle);
		sum-=angle;
	}
	printf("%d",sum);
}

09

#include <stdio.h>
#include<math.h>
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	int i,count;
	int flaga=0;
	int flagb=0;
	int sum=0;
	//判断a,b是否为偶数,是则flag为1 
	if(a%2==0)
	{
		flaga=1;
	}
	if(b%2==0)
	{
		flagb=1;
	}
	//a,b为奇,奇 
	if(flaga==0&&flagb==0)
	{
		count=(b-a)/2+1;
		for(i=a;i<=b;i=i+2) 
		{
			sum+=i;
		}
	}
	//a,b为偶,偶 
	if(flaga==1&&flagb==1)
	{
		count=(b-a)/2;
		for(i=a+1;i<b;i=i+2)
		{
			sum+=i;
		} 
	}
	//a,b为奇,偶 
	if(flaga==0&&flagb==1)
	{
		count=(b-a)/2+1;
		for(i=a;i<b;i=i+2)
		{
			sum+=i;
		} 
	}
	//a,b为偶,奇 
	if(flaga==1&&flagb==0)
	{
		count=(b-a)/2+1;
		for(i=a+1;i<=b;i=i+2)
		{
			sum+=i;
		} 
	}
	printf("%d",sum); 
}

10

#include <stdio.h>
#include<math.h>
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	int i;
	int sum=0;
	for(i=a;i<=b;i++)
	{
		if(i%17==0)
		{
			sum+=i;
		}
	}
	printf("%d",sum);
}

11

#include <stdio.h>
#include<math.h>
int main()
{
	int k,x;
	scanf("%d",&k);
	int i;
	int a=0;
	int b=0;
	int c=0;
	for(i=0;i<k;i++)
	{
		scanf("%d",&x);
		if(x==1)
		{
			a++;
		}
		if(x==5)
		{
			b++;
		}
		if(x==10)
		{
			c++;
		}
	}
	printf("%d\n%d\n%d",a,b,c);
}

12

#include <stdio.h>
#include<math.h>
int main()
{
	int n,goal,x,i;
	int count=0;
	scanf("%d %d",&n,&goal);
	for(i=0;i<n;i++)
	{
		scanf("%d",&x);
		if(x==goal)
		{
			count++;
		}
	}
	printf("%d",count);
}

13

#include <stdio.h>
#include<math.h>
int main()
{
	long a,n,result;
	scanf("%ld %ld",&a,&n);
	result=pow(a,n);
	printf("%ld",result);
}

14

#include <stdio.h>
#include<math.h>
int main()
{
	int x,n;
	scanf("%d %d",&x,&n);
	double sum=x*1.0;
	int i;
	for(i=0;i<n;i++)
	{
		sum*=1.001;
	}
	printf("%.4f",sum);
}

15

#include <stdio.h>
#include<math.h>
int main()
{
	int r,m,y;
	scanf("%d %d %d",&r,&m,&y);
	double sum=1.0*m;
	int i;
	for(i=0;i<y;i++)
	{
		sum*=1+(r*1.0/100);
	}
	printf("%d",(int)sum);
}

16

#include <stdio.h>
#include<math.h>
int main()
{
	int n,k;
	scanf("%d %d",&n,&k);
	int year,posses;
	double price=200*1.0;
	for(year=1;year<21;year++)
	{
		posses=n*year;
		if(posses>=price)
		{
			printf("%d",year);
			return 0;
		}
		price*=(1+(k*1.0)/100);
	}
	printf("Impossible");
}

17

#include <stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int a[n];
	a[0]=1;
	a[1]=1;
	int i;
	for(i=2;i<n;i++)
	{
		a[i]=a[i-1]+a[i-2];
	}
	printf("%d",a[i-1]);
}

18

#include <stdio.h>
#include<math.h>
int main()
{
	int n,i;
	scanf("%d",&n);
	//a,b为鸡尾酒疗法的数据,s为改进疗法的数据
	int a,b,s[n-1][2];
	//x为鸡尾酒疗法的x数据,y为每组改进疗法的y数据 
	double x,y[n-1];
	scanf("%d %d",&a,&b);
	x=(b*1.0)/a;
	for(i=0;i<n-1;i++)
	{  
		scanf("%d %d",&s[i][0],&s[i][1]);
		y[i]=(s[i][1]*1.0)/s[i][0];
	}
	for(i=0;i<n-1;i++)
	{
		if(y[i]-x>0.05)
		{
			printf("better\n");
		}
		else if(x-y[i]>0.05)
		{
			printf("worse\n");
		}
		else
		{
			printf("same\n");
		}
	}
}

19

#include <stdio.h>
#include<math.h>
int main()
{
	//data用于记录每个屋顶的数据 
	int i,n;
	double data[n][3];
	double t=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%lf %lf %lf",&data[i][0],&data[i][1],&data[i][2]);
		t+=2*(sqrt(pow(data[i][0],2)+pow(data[i][1],2))*1.0/50)+1.5*data[i][2];
	}
	printf("%d",(int)ceil(t));
}

20

#include <stdio.h>
#include<math.h>
int main()
{
	int h,i;
	scanf("%d",&h);
	//distance为每次跳起经过的路程 
	double distance=(h*1.0)/2;	
	//sum为经过的距离和 
	double sum=h*1.0;
	for(i=0;i<9;i++)
	{
		sum+=2*distance;
		distance/=2;	
	}
		printf("%g %g",sum,distance);
}

21

#include <stdio.h>
#include<math.h>
int main()
{
 	long n;
	scanf("%ld",&n);
	while(n!=1)
	{
		if(n%2==0)
		{
			printf("%ld/2=%ld\n",n,n/2);
			n/=2;
		}
		else if(n%2==1)
		{
			printf("%ld*3+1=%ld\n",n,3*n+1);
			n=3*n+1;
		}
	}
	printf("End");
	return 0;
}

22

#include <stdio.h>
#include<math.h>
int main()
{
    int budget[12];
    int store = 0;
    int money = 0;
    double sum;
    int i;
    for (i = 0; i < 12; i++)
    {
        scanf("%d", &budget[i]);
    }
    for (i = 0; i < 12; i++)
    {
        money += 300;
        if (money >= budget[i])
        {
            store += ((money - budget[i]) / 100) * 100;
            money -= ((money - budget[i]) / 100) * 100 + budget[i];
        }
        else
        {
            printf("-%d", i + 1);
            return 0;
        }
    }
    sum = money + store * 1.2;
    printf("%.0f", sum);
}

23

#include <stdio.h>
#include<math.h>
int main()
{
	int i,n,m,need;
	int count = 0;
	scanf("%d", &m);
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &need);
		if (need <= m)
		{
			m -= need;
		}
		else
		{
			count++;
		}
	}
	printf("%d", count);
}

24

#include <stdio.h>
#include<math.h>

int main()
{
	//a为收缩血压,b为舒张血压
	int a, b, n, i;
	//count用于记录连续正常血压次数,max记录count的最大值
	int count = 0, max = 0;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d %d", &a, &b);
		//若血压正常
		if (a <= 140 && a >= 90 && b <= 90 && b >= 60)
		{
			count++;
		}
		else
		{
			if (count > max)
			{
				max = count;
			}
			//若血压不正常,count归零,重新记录
			count = 0;
		}
	}
	//最后一次count不归零的情况,count的值未记录 
	if (count!=0)
	{
		if (count > max)
		{
			max = count;
		}
	}
	printf("%d", max);
}

25

#include<stdio.h>
#include<math.h>


//十位数转任意进制的方式:除积倒取余
//可以通过i/7/7%7和i/9/9%9求得7进制和9进制的百位数;
//可以通过i/7%7和i/9%9求得7进制和9进制的十位数;
//可以通过i%7和i%9求得7进制和9进制的个位数。
int main()
{
    int i;
    for(i=1;;i++)
	{
        if((i%9==i/7/7%7)&&(i/9%9==i/7%7)&&(i/9/9%9==i%7))
		{	
			printf("%d\n",i);
			printf("%d%d%d\n",i/7/7%7,i/7%7,i%7);
			printf("%d%d%d\n",i/9/9%9,i/9%9,i%9);
			break;
		}
    }
    return 0;
}

26

#include<stdio.h>
int main()
{
	int n,i,j,count=0;
	//abcd分别表示最高位到最低为上的数 
	int a,b,c,d;
	scanf("%d",&n);
	int num[n];
	for(i=0;i<n;i++)
	{
		scanf("%d",&num[i]);
		//判断是否满足条件
		d=num[i]%10;
		num[i]/=10;
		c=num[i]%10;
		num[i]/=10;
		b=num[i]%10;
		num[i]/=10;
		a=num[i]%10;
		if(d-b-c-a>0)
		{
			count++;
		}
	}
	printf("%d",count);	
}

27

#include<stdio.h>
int main()
{
	int k;
	scanf("%d",&k);
	double sn=0;	
	int i=1;
	while(sn<=k)
	{		
		sn+=1.0/i;
		i++;
	}
	printf("%d",i-1);
	return 0;
}

28

#include<stdio.h>
int main()
{
	long x;
	scanf("%ld",&x);
	int get;
	while(x!=0)
	{
		get=x%10;
		printf("%d ",get);
		x/=10;
	}
	return 0;
}

29

#include<stdio.h>
#include<math.h>

int main()
{
	long n;
	scanf("%ld",&n);
	long reverse=0,temp=n;
	int i,count=0;
	while(temp!=0)
	{
		count++;
		temp/=10;
	}
	int a[count];
	temp=n;
	for(i=0;i<count;i++)
	{
		a[i]=temp%10;
		temp/=10;
	}
	for(i=0;i<count;i++)
	{
		reverse+=a[i]*pow(10,count-1-i);
	}
	printf("%d",reverse);
	
    return 0;
}

30

#include<stdio.h>
int main()
{
	int m,k,x;
	scanf("%d %d",&m,&k);
	int temp=m;
	int count=0;
	while(temp!=0)
	{
		x=temp%10;
		if(x==3)
		{
			count++;
		}
		temp/=10;
	}
	if(count==k&&m%19==0)
	{
		printf("YES");
	}
	else
	{
		printf("NO");
	}
}

31

#include<stdio.h>
int main()
{
	int n,m,count=0;
	int k=0;
	scanf("%d %d",&n,&m);
	//a[i]用于记录灯的状态,1为打开,-1为关闭 
	int i,j,a[n];
	//将所有的灯初始化为打开状态 
	for(i=0;i<n;i++)
	{
		a[i]=1;
	}
	for(i=1;i<=m;i++)
	{
		for(j=0;j<n;j++)
		{
			if((j+1)%i==0)
			{
				a[j]=-a[j];
			}
		}
 	}
	//计算有多少个灯关闭 
	for(i=0;i<n;i++)
	{
		if(a[i]==-1)
		{
			count++;
		}
	}
	
	int b[count];
	//b用于记录关闭的灯的序号,初始化b数组 
	for(i=0;i<n;i++)
	{
		if(a[i]==-1)
		{
			b[k++]=i+1;
		}
	}
	
	//输出关闭的灯的序号
	for(i=0;i<count;i++)
	{
		if(i!=count-1)
		{
			printf("%d,",b[i]);
		}
		else
		{
			printf("%d",b[i]);
		}
	}
}

32

#include <stdio.h>
#include<math.h>

int main()
{
	int n;
	scanf("%d",&n);
	int p=1,q=2,sum=0;
	double x,result=0;
	for(int i=0;i<n;i++)
	{
		x=(1.0*q)/p;
		result+=x;
		int temp=p;
		p=q;
		q+=temp;
	}
	printf("%.4f",result);
	return 0;
}

33

#include<stdio.h>
#include<math.h>
int main()
{
	int i,n;
	double sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum+=pow(-1,i-1)*(1.0/i);
	}
	printf("%.4f",sum);
	return 0;
}

34

#include<stdio.h>
#include<math.h>

int main()
{
	int n;
	scanf("%d",&n);
	int i,j,sum=0;
	for(i=1;i<=n;i++)
	{
		int x=1;
		for(j=1;j<=i;j++)
		{
			x*=j;
		}
		sum+=x;
	} 
	printf("%d",sum);
}

35

#include<stdio.h>
#include<math.h>

int main()
{
	int n;
	scanf("%d",&n);
	int i,j;
	double e=1.0;
	for(i=1;i<=n;i++)
	{
		double x=1;
		for(j=1;j<=i;j++)
		{
			x*=j;
		}
		e+=1/x;
	}
	printf("%.10f",e);
    return 0;
}

36

#include<stdio.h>
#include<math.h>

int main()
{
	float x;
	int n;
	scanf("%f %d",&x,&n);
	int i;
	double sum=0;
	for(i=0;i<n+1;i++)
	{
		sum+=pow(x,i);
	}
	printf("%.2f",sum);
    return 0;
}

37

#include <stdio.h>
#include<math.h>

int main()
{
	int M,N,X;
	scanf("%d %d %d",&M,&N,&X);
	//power为体力,sword为战斗力,energy为能量
	int power=0,sword=N,energy=X;
	while(energy>0)
	{
		energy-=(int)ceil(M*1.0/sword); 
		if(energy<0)
		{
			printf("%d",sword);
			return 0;
		}
		int n=sword;
		sword+=M/n;
	}
	printf("%d",sword);
	return 0;  
}

38

#include <stdio.h>
#include<time.h>

int main()
{
	int n;
	scanf("%d",&n);
	int c[n+1];
	if(n==0)
	{
		printf("0");
	}
	else
	{
		for(int i=0;i<n+1;i++)
		{
			scanf("%d",&c[i]);	
			if(c[0]==0)
			{
				printf("0");
				return 0;
			}
		}	
		for(int i=0;i<n;i++)
		{
			//输出结果
			printf("%d ",c[i]*(n-i)); 
		}	
	}	
	return 0;  
}

39

#include<stdio.h>
#include<math.h>

int main()
{
	int n,i,j,temp;
	long sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		temp=i;
		while(temp!=0)
		{
			if(temp%10==7||temp%7==0)
			{
				break;
			}
			else
			{
				temp/=10;
			}
		}
		if(temp==0)
		{
			sum+=i*i;
		}	
	}
	printf("%d",sum);
	return 0;
}

40

#include<stdio.h>
#include<math.h>

int main()
{
	int n,i,temp,sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		temp=i;
		while(temp!=0)
		{
			if(temp%10==1)
			{
				sum++;
			}
			temp/=10;
		}
	}
	printf("%d",sum);
	return 0;
}

41

#include<stdio.h>
#include<math.h>
int main()
{
	int i,l,r,sum=0;
	scanf("%d %d",&l,&r);
	//遍历l到r 
    for(i=l;i<=r;i++)
    {
        int temp=i;
        while(temp>0)
        {
            if(temp%10==2) 
			{
				sum++;
			}
            temp/=10;
        }
    }
    printf("%d\n",sum);
	return 0;
}

42

#include<stdio.h>
#include<math.h>

int main()
{
	int height,width,flag;
	char x;
	scanf("%d %d %c %d",&height,&width,&x,&flag);
	int i,j;
	if(flag==1)
	{
		for(i=0;i<height;i++)
		{
			for(j=0;j<width;j++)
			{
				printf("%c",x);
			}
			printf("\n");
		}
	}
	else if(flag==0)
	{
		for(i=0;i<height;i++)
		{
			if(i==0||i==height-1)
			{
				for(j=0;j<width;j++)
				{
					printf("%c",x);
				}
			}
			else
			{
				for(j=0;j<width;j++)
				{
					if(j==0||j==width-1)
					{
						printf("%c",x);
					}
					else
					{
						printf(" ");
					}
				}
			}
			printf("\n");
		}
	}
	return 0;
}

43

#include<stdio.h>
#include<math.h>

//n的因数可用n%i==0表示,最大的质因数可用n/min(最小的质因数) 表示
//因此只需找出最小的质因数即可 
//最小的质因数 = 是质数 + 是n的因数 
int main()
{
	int flag,i,j;
	long long n;
	scanf("%lld",&n);
	//遍历2到n寻找最小质因数 
	for(i=2;i<n;i++)
	{
		flag=0;
		//判断是否为质数 
		for(j=2;j<sqrt(i);j++)
		{		
			if(i%j==0)
			{
				flag=1;
				break;	
			}	
		}
		//flag=0表示该数为质数,n%i==0表示该数是n的因数 
		if(flag==0&&n%i==0)
		{
			printf("%d",n/i);
			return 0;
		}	
	} 
	return 0;
}

44

#include<stdio.h>
#include<math.h>

int isprime(int x)
{
	//该函数的作用是判断一个数是否为素数 
	int i,j;
	//注意:此处的素数可能取值很大,因此必须用sqrt()的方法,效率高,否则编译超时 
	for(i=2;i<=sqrt(x);i++)
	{
		if(x%i==0)
		{
			return 0;
		}
	}
	if(i==sqrt(x))
	{
		return 1;
	}
}

int main()
{
	int n;
	int count=0;
	scanf("%d",&n);
	int i=2;
	while(count!=n)
	{
		if(isprime(i))
		{
			count++;
		}
		i++;
	}
	printf("%d",i-1);
	return 0;
}

45

#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i,j,sum=0,count=0;
	for(i=1;i<=n;i++)
	{
		for(j=0;j<i;j++)
		{
			sum+=i;
			count++;
			if(count==n)
			{
				printf("%d",sum);
				return 0;
			}
		}
	}
	return 0;
}
  • 51
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超霸霸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值