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

Помогите решить задачу пожалуйста!

ника пар Ученик (66), открыт 3 недели назад
Напишите программу, которая вычисляет количество чисел от 1 до N (включая), удовлетворяющих хотя бы одному из двух условий:

число делится на 11;
сумма цифр числа делится на 11.
N вводится пользователем с клавиатуры.



Входные данные:

Вводится натуральное число N <= 10000.

Выходные данные:

Количество чисел от 1 до N, удовлетворяющих хотя бы одному из двух условий:

число делятся на 11;
сумма цифр числа делится на 11.


Так, например, если программе на вход подать число 20, она должна вывести число 1, т.к. от 1 до 20 только 11 удовлетворяет условию задачи.
3 ответа
_Fire_of_Death_ Гуру (3547) 3 недели назад
 function sumOfDigits($num) { 
$sum = 0;
while ($num > 0) {
$sum += $num % 10;
$num = (int)($num / 10);
}
return $sum;
}

echo "Введите число N: ";
fscanf(STDIN, "%d\n", $N); // Считывание N с клавиатуры

$count = 0;
for ($i = 1; $i <= $N; $i++) {
if ($i % 11 == 0 || sumOfDigits($i) % 11 == 0) {
$count++;
}
}

echo "Количество чисел от 1 до $N, удовлетворяющих условиям: $count";
?>
Андрей Высший разум (435041) 3 недели назад
Сумма цифр натурального числа $k считается в PHP намного проще:
 array_sum(str_split($k)) 
Весь код, решающий задачу:
 fscanf(STDIN, "%d", $n);
echo array_reduce(
range(1, $n), fn($p, $v) => $p + !(($v * array_sum(str_split($v))) % 11), 0
);
Алексей Антышев Ученик (143) 1 неделю назад
N = int(input("Введите число до которого будет идти проверка чисел: "))
count = 0
if N <= 10000:
for i in range(N+1):
a = i % 10
b = i % 100 // 10
c = i % 1000 // 100
d = i % 10000 // 1000
e = i % 100000 // 10000
f = a+b+c+d+e
if i >= 11 and (i % 11 == 0 or f % 11 == 0):
count += 1
print(count)
Похожие вопросы