Computadora 20-7, 8 Práctica básica de programación 1

Problema_A_ Juzgar el múltiplo común

Descripción
de entrada un número entero positivo, y juzgar si se trata de un múltiplo común de 2 y 3. En caso afirmativo, la potencia sí, de lo contrario, la salida
n; --------------
de entrada
de entrada un número entero positivo
------ ————————
Salida
Salida Sí o No
——————————————
Entrada de muestra
6
5
——————————————
Salida de muestra

No

Análisis del pensamiento: Esta
pregunta puede ser directamente de acuerdo con el significado de la pregunta. Ingrese un número, y juzgamos si es cero después de tomar el resto de 2 y 3. Si ambos son cero, la salida Sí, de lo contrario la salida No.

#include<cstdio>
using namespace std;
int main()
{
    
    
	int n;
	while(~scanf("%d",&n))
	{
    
    
		if(n%3==0 && n%2==0)
			printf("Yes\n");
		else
			printf("No\n");
	}
	return 0;
}

Problema_B_ contiene un número entero de 3

Descripción
Dados dos números enteros positivos ayb (a <b), calcule la suma de los 3 números entre ay b. Por ejemplo: 2 15. Los números que contienen 3 son 3 y 13, por lo que la suma de este grupo de datos es 16.
——————————————
Entrada
Dos enteros positivos
——————————————
Salida La suma
de datos que cumplen las condiciones
—————————— ————
Entrada de muestra
2 15
10 24
——————————————
Salida de muestra
16
36

Análisis de ideas:
Solo necesitamos enumerar cada número en un intervalo dado y juzgar cada dígito de cada número una vez. Si el número aparece 3 en un determinado dígito, solo necesitamos sumar este número a la ans. En el interior
, finalmente puede generar el valor de ans

#include<cstdio>
using namespace std;

bool check(int x)
{
    
    
	int temp;
	while(x)
	{
    
    
		temp=x%10;
		if(temp==3)	return true;
		x/=10;
	}
	return false;
}

int main()
{
    
    
	int l,r;
	while(~scanf("%d%d",&l,&r))
	{
    
    
		int ans=0;
		for(int i=l;i<=r;i++)
			if(check(i))
				ans+=i;
		printf("%d\n",ans);
	}
}

Problema_C_ Divisor común y múltiplo común

Descripción
dos números enteros positivos y el mínimo común múltiplo del máximo común divisor
--------------
la Entrada de
entrada dos enteros
--------------
el Divisor de salida de
salida Múltiplo común de suma
——————————————
Entrada de muestra
2 3
21 9
——————————————
Salida de muestra
1
6
3
63

Análisis del pensamiento:
la dificultad de esta pregunta es encontrar dos gcd (el factor mínimo común, Baidu que no lo
sabe ). Después de calcular el mcd, podemos demostrar fácilmente que el mínimo común múltiplo es a * b / gcd,
por lo que tenemos este código

#include<cstdio>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;

int gcd(int a,int b)
{
    
    
	if(a%b==0)
		return b;
	return gcd(b,a%b);
}

int main()
{
    
    
	int a,b;
	while(~scanf("%d%d",&a,&b))
	{
    
    
		int Gcd=gcd(max(a,b),min(a,b));
		printf("%d\n%d\n",Gcd,a*b/Gcd);
	}
}

Problema_D_ Determine qué día del año

Descripción
Introduzca un día determinado, un mes determinado y un día determinado para determinar qué día es el día del año.
——————————————
Entrada
Entrada una fecha
——————————————
Salida
Salida es el día del año
———————— ——————
Entrada de muestra
2010 1 6
2012 3 2
——————————————
Salida de muestra
6
62

Análisis de pensamiento:
Esto también es un problema de agua. En primer lugar, debemos tener claro que los años bisiestos son los primeros en ser juzgados, porque afectará directamente el número de días
en febrero. Después de conocer el número de días en febrero, necesitamos usar un ciclo, que será antes del mes actual. Sume la cantidad de días del mes (debería significar que cada mes antes de que esto se complete), luego agregue la cantidad de días del mes para obtener la respuesta final

#include<cstdio>
using namespace std;
int mon[15]={
    
    0,31,0,31,30,31,30,31,31,30,31,30,31};

bool isr(int Y)
{
    
    
	if((Y%4==0 && Y%100!=0) || Y%400==0)
		return true;
	else	return false;
}

int main()
{
    
    
	int y,m,d;
	while(~scanf("%d%d%d",&y,&m,&d))
	{
    
    
		int cnt=0;
		
		if(isr(y))	mon[2]=29;
		else		mon[2]=28;
		
		for(int i=1;i<m;i++)
			cnt+=mon[i];
		cnt+=d;
		printf("%d\n",cnt);
	}
	return 0;
}

Problema_E_ cálculo del área del triángulo

La descripción
da los tres lados del triángulo y calcula su área
————————————
Entrada
La longitud de los tres lados del triángulo (precisión simple)
——————————————
Salida
El área del triángulo (con 2 decimales)
——————————————
Entrada de muestra
3 4 5
2 6 6
3.5 7.83 6.178
——————————————
Salida de muestra
6,00
5,92
10,46

Análisis de pensamiento:
esta pregunta es aún más acuosa, porque tenemos la longitud de los tres lados del triángulo, por lo que la respuesta es directamente la fórmula de Helen (tenga en cuenta que se mantienen tres lugares decimales)

#include<cmath>
#include<cstdio>
using namespace std;

int main()
{
    
    
	double a,b,c,p;
	while(~scanf("%lf%lf%lf",&a,&b,&c))
	{
    
    
		p=(a+b+c)/2;
		printf("%.2f\n",sqrt(p*(p-a)*(p-b)*(p-c)));
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/Holo__/article/details/109448112
Recomendado
Clasificación