杭电oj2000-2010

2000-Problem Description

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

#include
#include
using namespace std;
int main(){
	int a,b,c;
	while(~scanf("%c%c%c",&a,&b,&c)){
		getchar();   //读取行最后的换行符
		if(a>b){
			a = a^b;
			b = b^a;
			a = a^b;
		} 
		if(a>c){
			a = a^c;
			c = c^a;
			a = a^c;
		} 
		if(b>c){
			b = b^c;
			c = c^b;
			b = b^c;
		} 
		printf("%c %c %c\n",a,b,c); 
	}
	return 0;
} 

2001-Problem Description

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

#include
#include
#include
using namespace std;
int main(){
	float x1,y1,x2,y2,dist;
	while(~scanf("%f %f %f %f",&x1,&y1,&x2,&y2)){
		dist= sqrt(pow(x1-x2,2)+pow(y1-y2,2));
		printf("%.2f\n",dist);
	}
	return 0;
}

2002-Problem Description

根据输入的半径值,计算球的体积。

#include
#include
using namespace std;
#define PI 3.1415927
int main(){
	double r,v;
	while(~scanf("%lf",&r)){
		v = 4*PI*r*r*r/3;
		printf("%.3lf\n",v);
	}
	return 0;
}

2003-Problem Description

求实数的绝对值。

#include
#include
#include
using namespace std;
int main(){
	double num;
	while(~scanf("%lf",&num)){
		printf("%.2lf\n",abs(num));
	}
	return 0;
}

2004-Problem Description

输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;80~89为B;70~79为C;60~69为D;0~59为E;

#include 
int main()
{
	int score;
	while(scanf("%d",&score) != EOF)
	{
		if(score < 0 || score > 100)
		{
			printf("Score is error!\n");
			continue;
		}
		score = score / 10;
		switch(score){
			case 10:case 9:
				printf("A\n");
				break;
			case 8:
				printf("B\n");
				break;
			case 7:
				printf("C\n");
				break;
			case 6:
				printf("D\n");
				break;
			default:
				printf("E\n");
				break;
		}
        }
	return 0;
}

2005-Problem Description

给定一个日期,输出这个日期是该年的第几天。

#include
#include
using namespace std;
int main(){
	int days[12] ={31,0,31,30,31,30,31,31,30,31,30,31};	//每个月份各有多少天。由于2月不确定,所以暂且设为0
	int year, month, date;
	int total = 0;
	
	while(~scanf("%d/%d/%d",&year,&month,&date)){
		total = 0;
		if(year%400==0 || (year%4==0 && year%100!=0)){
			days[1] = 29;
		}else{
			days[1] = 28;
		}
		
		for(int i=0;i

2006-Problem Description

给你n个整数,求他们中所有奇数的乘积。

#include
#include
using namespace std;
int main(){
	int n,sum,num;
	while(~scanf("%d",&n)){
		sum=1;
		while(n--){
			cin>>num;
			if(num%2==1) sum*=num;
		}
		cout<

2007-Problem Description

给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

#include
#include
#include
using namespace std;
int main(){
	int m,n,sum2,sum3;
	while(~scanf("%d%d",&m,&n)){
		if(m>n){
			m=m^n;
			n=n^m;
			m=m^n;
		}
		sum2=0;
		sum3=0;
		for(int i=m;i<=n;i++){
			if(i%2==0){
				sum2+=pow(i,2);
			}else{
				sum3+=pow(i,3);
			}
		}
		printf("%d %d\n",sum2,sum3);
	}
	return 0;
}

2008-Problem Description

统计给定的n个数中,负数、零和正数的个数。

#include
#include
using namespace std;
int main(){
	int n,num_p,num_zero,num_n;
	double num;
	while(~scanf("%d",&n) && n!=0){
		num_p=0;
		num_zero=0;
		num_n=0;
		while(n--){
			cin>>num;
			if(num<0){
				num_p++;
			}else if(num == 0){
				num_zero++;
			}else{
				num_n++;
			}
		}
		printf("%d %d %d\n",num_p,num_zero,num_n);
	}
	return 0;
}

2009-Problem Description

数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

#include
#include
#include
using namespace std;

int main(){
	int m;
	double n,sum;
	while(~scanf("%lf%d",&n,&m)){
		sum=0;
		for(int i=0;i

2010-Problem Description

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。

#include
#include
using namespace std;

int main(){
	int m,n,g,s,b,x;
	while(~scanf("%d%d",&m,&n)){
		x=0;
		for(int i=m;i<=n;i++){
			g=i%10;
			s=i%100/10;
			b=i/100;
			if(i == g*g*g+s*s*s+b*b*b){
				if(x==0){
					printf("%d",i);
				}else{
					printf(" %d",i);
				}
				x++;
			}
		}
		if(x==0){
			cout<<"no"<

 

你可能感兴趣的:(程序设计,算法)