tema
[Descrição do problema]
Xiaoming pratica qigong todos os dias, e o item mais importante na prática de qigong é a pilha de flores de ameixa.
As pilhas de flores de ameixa de Xiao Ming estão dispostas em n linhas em colunas. A distância entre duas linhas adjacentes é 1, e a distância entre duas colunas adjacentes também é 1.
Xiaoming está na primeira linha e na primeira coluna e deseja ir para a enésima linha e a mésima coluna. Xiao Ming vem praticando há algum tempo e agora ele pode se mover a uma distância de no máximo d (distância em linha reta) em uma única etapa.
Xiao Ming queria saber quantos passos ele teria que dar até o alvo sem cair da pilha de flores de ameixa.
[Formato de entrada]
A primeira linha de entrada contém dois inteiros n, m, que representam o número de linhas e colunas de pilhas de quincunx.
A segunda linha contém um número real d (contém uma casa decimal no máximo), indicando a distância que Xiao Ming pode se mover em uma etapa.
[Formato de saída]
Produz um número inteiro, indicando quantos passos Xiao Ming pode atingir a meta pelo menos.
[Amostra de entrada]
3 4
1.5
[Amostra de saída]
3
[Escala e convenções de caso de uso de avaliação]
Para 30% dos casos de uso de avaliação, 2 <= n, m <= 20, 1 <= d <= 20.
Para 60% dos casos de uso de avaliação, 2 <= n, m <= 100, 1 <= d <= 100.
Para todos os casos de avaliação, 2 <= n, m <= 1000, 1 <= d <= 100.
Código
import java.util.Scanner;
public class Main {
//蓝桥杯要求class命名为Main,且无package
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
int m=scanner.nextInt();
float d = scanner.nextFloat();
float distance = (float)Math.sqrt(((n-1)*(n-1)+(m-1)*(m-1)));//计算距离
int step = (int) Math.ceil(distance/d);//向上取整
System.out.println(step);
}
}
Analise de problemas
De acordo com o estilo de entrada e saída da pergunta, pode ser calculado que a distância calculada é a distância mais curta entre dois pontos. Por exemplo, n = 3, m = 4, e a distância é de aproximadamente 3,6 em vez de 5.