Arbil
@Arbil

Почему данный код работает не правильно?

Здрасте
Посмотрите пожалуйста код
Я не могу понять что тут не так
В процессе выполнения выдаёт результат "266333", но результат должен быть "233168"


Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел равна 23.

Найдите сумму всех чисел меньше 1000, кратных 3 или 5.


CODE:
def CheckNumber( NumberForCheck ):

    if len(NumberForCheck) == 1 and int(NumberForCheck) == 0:
        
         return True 
    
    else:
        
        return False

Max = 1000

Finish_Number = 0

for Number in range(Max):
    
    Str_Number_For3 = str(Number / 3)
    
    if (CheckNumber(Str_Number_For3[Str_Number_For3.find('.') + 1 ::])):
        
        Finish_Number += Number

    Str_Number_For5 = str(Number / 5)
    
    if (CheckNumber(Str_Number_For5[Str_Number_For5.find('.') + 1 ::])):

        Finish_Number += Number
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
@Timosha_Shakal
Не разбираюсь в питоне, но судя по коду, если число кратно одновременно 3 и 5, вы его суммируете два раза
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zenwalker
@zenwalker
0xABADBABE
Не разбирался, но вы что-то совсем намудрили с переводом числа в строку.
Кратность числа можно узнать через деление по модулю (оператор %)

n % 3 == 0
n % 5 == 0

решение задачки

result = 0
for n in range(1000):
    if n % 3 == 0 or n % 5 == 0:
        result += n

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы