Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу

Александр Соломенников Знаток (381), открыт 2 недели назад
Напишите программу, которая определяет количество чисел от 1 до N (включительно), удовлетворяющих следующим условиям: последняя цифра числа равна 5; число является квадратом целого числа. N вводится пользователем с клавиатурой. Входные данные: Вводится натуральное число N, не превышающее 10000. Выходные данные: Количество чисел от 1 до N, у которых последняя цифра равна 5, и которые являются квадратами целых чисел. Пример: Если программе на вход подать число 100, она должна вывести число 1, т.к. среди чисел от 1 до 100 таким условием обладает 25 (5^2) В поле краткого ответа введите число, которое получается в результате работы программы при вводе числа 10000.
2 ответа
Даниил Захаров Ученик (157) 2 недели назад
import java.util.Scanner;

public class CountSquaresWithLastDigitFive {

public static void main(String[] args) {
Scanner scanner = new Scanner( System.in );

System.out.print("Введите N: ");
int n = scanner.nextInt();

int count = 0;
for (int i = 1; i <= n; i++) {
int lastDigit = i % 10;
if (lastDigit == 5) {
int squareRoot = (int) Math.sqrt(i);
if (squareRoot * squareRoot == i) {
count++;
}
}
}

System.out.println("Количество чисел: " + count);
}
}
Оракул Оракул (59505) 2 недели назад
Не надо считать ни квадратные корни, ни последнюю цифру и перебирать каждое число тоже не надо
 import java.util.Scanner;  

public class Test {

public static void main(String[] args) {
var scanner = new Scanner(System.in);
var n = scanner.nextInt();
var count = 0;
for (int i = 5, i2 = i * i; i2 <= n; i += 10, i2 = i * i) {
count++;
}
System.out.println(count);
}
}
День цементаМастер (1521) 2 недели назад
тут по факту даже цикл и не нужен. Достаточно взять корень из числа n, поделить на 10 и округлить в большую сторону. Это будет работать, поскольку в промежутке 0..9 только 5 в квадрате будет иметь на конце 5. Из этого исходит, что нам подходят все числа, которые заканчиваются на 5, и <= sqrt(n), ведь они гарантированно в квадрате будут <= n и иметь 5 на конце
На джаве сто лет не писал, но на котлине это будет выглядеть вот так
 val n = readln().toFloat() 
print((sqrt(n) / 10).roundToInt())
Оракул Оракул (59505) День цемента, еще лучше)
Похожие вопросы