Implementación Hangdian oj2000-2009 C ++ (equipo de capacitación ACM del Instituto de Tecnología de Nanchang)

Empecé a aprender C ++ durante el campamento de vacaciones de invierno y me di cuenta de los problemas de 2000-2009 en Hangdian oj con C ++.

Implementación C ++ de clasificación de código ASCII Hangdian 2000.Hangzhou Electric 2000

#include<iostream>
using namespace std;
int main()
{
    
    
	char str[3],temp;
	while(cin>>str)
	{
    
    
		if(str[0]>str[1])
		{
    
    
			temp=str[0],str[0]=str[1],str[1]=temp;
		}
		if(str[0]>str[2])
		{
    
    
			temp=str[0],str[0]=str[2],str[2]=temp;
		}
		if(str[1]>str[2])
		{
    
    
			temp=str[1],str[1]=str[2],str[2]=temp;
		}
		cout<<str[0]<<" "<<str[1]<<" "<<str[2]<<endl;
	}
	return 0;
}

Tenga en cuenta que los caracteres están definidos y debe haber espacios al imprimir.

Hangdian oj2001 calcula la distancia entre dos puntos en C ++.
Hangzhou

#include<iostream>
#include<iomanip> 
#include<math.h>
using namespace std;
int main()
{
    
    
	double x1,x2,y1,y2,x;
	while(cin>>x1>>y1>>x2>>y2)
	{
    
    
		x=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
	    cout<<fixed<<setprecision(2)<<x<<endl;
	}
	return 0;
 } 

El resultado debe ser dos lugares decimales. En este momento necesitas usar:

#include<iomanip> //setiosflags(ios::fixed),头文件为:include<iomanip>
cout<<fixed<<setprecision(2)<<x<<endl;//setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。

Hangdian oj2002 calcula el volumen de la implementación de C ++ de la bola.
Inserte la descripción de la imagen aquí

#include<iostream>
#include<iomanip>//setiosflags(ios::fixed),头文件为:include<iomanip> 
#define pi 3.1415927
using namespace std;
int main()
{
    
    
	double v,r;
	while(cin>>r)
	{
    
    
		v=pi*r*r*r*4/3;
		cout<<setiosflags(ios::fixed)<<setprecision(3)<<v<<endl;//setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
	}
	return 0;
 } 

Tenga en cuenta que el resultado conserva 3 lugares decimales.

Implementación Hangdian oj2003 C ++ de valor absoluto.
Inserte la descripción de la imagen aquí

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    
    
	double n;
	while(cin>>n)
	{
    
    
		if(n>0)
		{
    
    
			cout<<fixed<<setprecision(2)<<n<<endl;
		}
		else
			cout<<fixed<<setprecision(2)<<-n<<endl;
	}
	return 0;
}

Implementación de C ++ de conversión de puntaje Hangdian oj2004.
Inserte la descripción de la imagen aquí

#include<iostream>
using namespace std;
int main()
{
    
    
	int a;
	while(cin>>a)
	{
    
    
		if(a>=90&&a<=100)
		{
    
    
			cout<<'A'<<endl;
		}
		else if(a>=80&&a<=89)
		{
    
    
			cout<<'B'<<endl;
		}
		else if(a>=70&&a<=79)
		{
    
    
			cout<<'C'<<endl;
		}
		else if(a>=60&&a<=69)
		{
    
    
			cout<<'D'<<endl;
		}
		else if(a>=0&&a<=59)
		{
    
    
			cout<<'E'<<endl;
		}
		else cout<<"Score is error!"<<endl;
	}
	return 0;
}

Hangdian oj2005 los primeros días de implementación de C ++
Inserte la descripción de la imagen aquí

#include<iostream>
using namespace std;
int main()
{
    
    
	int y,m,d,i,s;
	while(cin>>y)
	{
    
    
		s=0;
		int t1[12]={
    
    31,28,31,30,31,30,31,31,30,31,30,31};
		int t2[12]={
    
    31,29,31,30,31,30,31,31,30,31,30,31};
		cin.ignore();
		cin>>m;
		cin.ignore();
		cin>>d;
		if((y%400==0)||((y%100!=0)&&(y%4==0)))
		{
    
    
		for(i=0;i<m-1;i++)
		{
    
    
			s=s+t2[i];
		}
			s=s+d;
		}
		else
		{
    
    
			for(i=0;i<m-1;i++)
			{
    
    
			s=s+t1[i];
			}
			s=s+d;	
		}
		cout<<s<<endl;
	}
	return 0;
}

Nota:
Para determinar si es un año bisiesto, el mes de febrero de un año bisiesto es de 29 días.

cin.ignore();

La función de cin.ignore (); es eliminar las barras en 1985/1/20 en la entrada.

Hang Dian 2006 La realización del producto de números impares en C ++
Inserte la descripción de la imagen aquí

#include<iostream>
using namespace std;
int main()
{
    
    
	int n,m,sum;
	while(cin>>n)
	{
    
    
		sum=1;
		for(int i=0;i<n;i++)
		{
    
    
			cin>>m;
		if(m%2!=0)
		{
    
    
			sum=sum*m;
		}
 	    }
		cout<<sum<<endl;
	}
	return 0;
}

Hangdian oj2007 suma de cuadrados y suma de cubos
Inserte la descripción de la imagen aquí

#include<iostream>
using namespace std;
int main()
{
    
    
	int n,m,x,y,i;
	while(cin>>m>>n)
	{
    
    
		x=0,y=0;
		if(m>n)//比较n m的大小。 
		{
    
    
			i=m,m=n,n=i;
		}
		for(;m<=n;m++)
		{
    
    
			if(m%2==0)
			{
    
    
				x=x+m*m;
			}
			else y=y+m*m*m;
		}
		cout<<x<<" "<<y<<endl;
	}
	return 0;
}

Preste atención a comparar el tamaño de my n.

Realización de C ++ de las estadísticas numéricas oj2008 de Hangzhou Electric

Inserte la descripción de la imagen aquí

#include<iostream>
using namespace std;
int main()
{
    
    
	int n;
	while(cin>>n)
	{
    
    
		if(n==0)
		{
    
    
			break;
		}
			double a=0,b=0,c=0,i=0,x;
			while(cin>>x)
			{
    
    
				i++;
			if(x<0)
				{
    
    
					a++;
				}
				if(x==0)
					{
    
    
						b++;
					}
					if(x>0)
						{
    
    
							c++;
						} 
						if(i==n)
							{
    
    
								break;
							}
			}
		cout<<a<<" "<<b<<" "<<c<<endl;
	}
	return 0;
}

Preste atención a los espacios en la salida.

Hang Dian oj2009 Encuentra la suma de la secuencia de C ++
Inserte la descripción de la imagen aquí

#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int main()
{
    
    
	int n,m;
	while(cin>>n>>m)
	{
    
    
		double b,sum=0;
		b=n,sum=n;
		for(int i=1;i<m;i++)
		{
    
    
			b=sqrt(b);
			sum=sum+b;
		}
		cout<<fixed<<setprecision(2)<<sum<<endl;
	}
	return 0;
}

Tenga en cuenta que el resultado requiere dos lugares decimales.

Supongo que te gusta

Origin blog.csdn.net/weixin_51765822/article/details/112790182
Recomendado
Clasificación