Java combat 15: conteo de cuadrados

Java combat 15: conteo de cuadrados

Copa Blue Bridge grupo provincial de Java A 4.

Título original:
Título: Grid count

Como se muestra en la figura p1.png, hay innumerables cuadrados pequeños de 1x1 en el plano bidimensional.
Inserte la descripción de la imagen aquí

Dibujamos un círculo con un radio de 50000 con un vértice de un pequeño cuadrado como centro.
¿Puedes calcular cuántos cuadrados pequeños completos hay en este círculo?

Nota: Lo que debe enviarse es un número entero, no complete ningún contenido adicional.

Idea: Solo mire cuántos cuadrados completos hay en el primer cuadrante, y la distancia desde la esquina superior derecha de un cuadrado al centro del círculo no es menor que r.

el código se muestra a continuación:

public class province_4 {
    
    
	public static void main(String[] args) {
    
    
		long l=50000;long t=0;
		for(long i=1;i<l;i++) {
    
    
			for(long j=1;j<l;j++) {
    
    
				if(i*i+j*j<=l*l) {
    
    
					t++;
				}
			}
		}
		System.out.println(t*4);
	}
}

Resultado de la operación:
Inserte la descripción de la imagen aquí
Nota: por qué necesito usar long pero no int: porque i está en el rango de int, pero i * i es muy grande y no está en el rango de int, por lo que se debe usar el tipo long. Lo mismo es cierto para j y r.
t en sí es un número muy grande, por lo que se utiliza el tipo largo.
Para operaciones de dos números, el tipo de datos del resultado de la operación está determinado por la prioridad más alta de la prioridad de dos números.

Supongo que te gusta

Origin blog.csdn.net/weixin_46020391/article/details/112622821
Recomendado
Clasificación