OJ2012题、2013题、2014题、2015题、2016题

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。

Input
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。

Output
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。

Sample Input
   
   
0 1 0 0

Sample Output
   
   
OK
#include<stdio.h>
int sushu(int n)
{
    int i;
    if(n<2)
    return 0;
    for(i=2;i*i<=n;i++)
    {
        if(n%i==0)
        return 0;
    }
    return 1;
}
int main()
{
    int x, y, i, s;
    while(scanf("%d%d",&x,&y))
    {
        if(x==0&&y==0)
        break;
        for(i=x;i<=y;i++)
        {
            s=i*i+i+41;
            if(!sushu(s))
            {
                printf("Sorry\n");
                break;
            }

        }
        if(i==y+1)
        printf("OK\n");
    }
    return 0;
}
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题?他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵^-^
当时的情况是这样的:
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

Input
输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。

Output
对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。

Sample Input
   
   
2 4

Sample Output
   
   
4 22
#include <stdio.h>

int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		int s=1;
		for(n;n>1;n--)	
		{
			s=(s+1)*2;	
		}
		printf("%d\n",s);
	}
	return 0;
}
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

Input
输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。

Output
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

Sample Input
   
   
3 99 98 97 4 100 99 98 97

Sample Output
   
   
98.00 98.50
#include <stdio.h>

int main() 
{
	int n,s[100];
	while(scanf("%d",&n)!=EOF)
	{
		int i;
		float f=0;
		float sum=0;
		int max=0;
		int min=100;
		for(i=0;i<n;i++)
		{
			scanf("%d",&s[i]);
			if(max<s[i])
			{
				max=s[i];
			}
			if(min>s[i])
			{
				min=s[i];
			}
			sum=sum+s[i];
		}
		f=sum-min-max;
		printf("%.2f\n",f/(n-2));
	}
	return 0;
}
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。

Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。

Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。

Sample Input
   
   
3 2 4 2

Sample Output
   
   
3 6 3 7
#include<stdio.h>
int main ()
{
	int a[100],i,j,m,n,x,y;
	for(i=0;i<100;i++) a[i]=(2*i+2);
	while(scanf("%d%d",&y,&m)!=EOF) 
	{
		n=y/m;
		x=0;
		for(i=0;i<m;i++) x+=a[i];
			x=x/m;
		printf("%d",x);
		if(y>m)
		{
			for(j=2;j<=n;j++)
		{
			x=0;
			for(i=(j-1)*m;i<j*m;i++)
				x+=a[i];
			x=x/m;
			printf(" %d",x);
		}
		if(y>n*m)
		{
			x=0;
			for(i=n*m;i<y;i++)
				x+=a[i];
			printf(" %d",x/(y-n*m));
		}
		} 
		printf("\n");
	}
 return 0;
}
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。

Input
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。

Output
对于每组输入数据,输出交换后的数列,每组输出占一行。

Sample Input
   
   
4 2 1 3 4 5 5 4 3 2 1 0

Sample Output
   
   
1 2 3 4 1 4 3 2 5
#include <stdio.h>

int main()
{
	int n;
	while(scanf("%d",&n)!=EOF&&n!=0)
	{
		int i,j,x[100],min=0,in=0,temp;
		for(i=0;i<n;i++)			
			scanf("%d",&x[i]);
			min=x[0]; 
			for(j=1;j<n;j++)
			{
			
			if(min>x[j])
			{
				min=x[j];
				in=j;
			}			
		}
		temp=x[0];
		x[0]=x[in];
		x[in]=temp;
		for(j=0;j<n;j++)
		{
			printf("%d",x[j]);
			if(j!=n-1)
				printf(" ");
		}
		 printf("\n");
	}
	return 0;
}










评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值