Top.Mail.Ru
Ответы

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

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

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



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

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

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

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

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


Так, например, если программе на вход подать число 20, она должна вывести число 1, т.к. от 1 до 20 только 11 удовлетворяет условию задачи.

По дате
По рейтингу
Аватар пользователя
Новичок

Сумма цифр натурального числа $k считается в PHP намного проще:

1
 array_sum(str_split($k)) 

Весь код, решающий задачу:

1234
 fscanf(STDIN, "%d", $n);
echo array_reduce( 
  range(1, $n), fn($p, $v) => $p + !(($v * array_sum(str_split($v))) % 11), 0
); 
Аватар пользователя
Мыслитель
1234567891011121314151617181920212223
 <?php 
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"; 
?> 
 
Аватар пользователя
Ученик

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)