Вычислить значение выражения в цикле

Определение 1:n!!...!=n(n-k)(n-2k)...(n mod k), если n не делится на k,n!!...!=n(n-k)(n-2k)...k, если n делится на k (знаков ! в обоих случаях k штук).Определение 2:X mod Y — остаток от деления X на Y.Например, 10 mod 3 = 1; 3! = 3•2•1; 10!!! = 10•7•4•1;Мы по заданным n и k смогли вычислить значение выражения из определения 1. А вам слабо?Входные данныеВо входном файле INPUT.TXT содержится ровно одна строка. Сначала – целое число n, (1 ≤ n ≤ 10) , затем ровно один пробел, затем k восклицательных знаков (1 ≤ k ≤ 20).Выходные данныеВ выходной файл OUTPUT.TXT выведите одно число – значение n!!..! .
14 ответов

res = 1
for i in range(n//k + 1):
    res *= (n - i*k or 1)
И (можете не обращать на нижеследующий код внимания - дань тараканам)
from functools import reduce
from operator import mul
 
res = reduce(lambda v, i: v*(n - i*k or 1), range(1, n//k+1), n)
# или
res = reduce(mul, (n - i*k or 1 for i in range(n//k + 1)))


shsv,
s=input()
n = s.split(" ")[0]
f = len(s.split(" ")[1])
i=1
while s>1:
    s=s*(s-f*i)
    i=i+1
print(n)
print(f)
я так сделал но не правильно. что тут не так ?


В цикле s , вместо n. И бесконечный цикл...


shsv, ругается
s=input()
n = s.split(" ")[0]
f = len(s.split(" ")[1])
i=1
while n>1:
    n=n*(n-f*i)
    i=i+1
print(n)
print(f)
 
3 !!!
Traceback (most recent call last):
  File "c:\python\project-10.py", line 5, i
    while n>1:
TypeError: unorderable types: str() > int()


n = int(s.split()[0])


цикл бесконечный идет и ответ не правильный. ввожу 9 !! должно выводить 945. а ответ не этот


def my_funct(n, k):
    result = 1
    for i in range(n, (n % k if n % k else k) - 1, -k):
        result *= i
    return result


Marinero, без функции надо


result = 1
for i in range(n, 0, -k):
        result *= i 
print(result)


Marinero, а в моем коде что не правильно ?


sneep, условие выхода из цикла, и n меняться не должно


shsv, не доходит на коде где ошибка ?


i=1
r = n
while n-f*i>1:
    r=r*(n-f*i)
    i=i+1


shsv, Traceback (most recent call last): File "c:\python\test.py", line 2, in r = n NameError: name 'n' is not definedвот эту ошибку выдает.