код с C++ на Python

В рациях я перешёл с С++ на Python решил опробовать свои в одной задачке, но не получилось :( А получилось только на С++, можете ли вы помочь с переписыванием кода на С++ в Python код вот С++ код:

#include<bits/stdc++.h>

using namespace std;

int n,m,j;

int main()
{
    cin>>n>>m;
    while(m>=(j-1)%n+1)
    {
        m-=(j-1)%n+1;
        j++;
    }
    cout<<m;
    return 0;
}

Ответы (1 шт):

Автор решения: Павел Ериков

В c++ целочисленная переменная объявленная вне функции (глобальная переменная) по умолчанию имеет значение 0.

Тогда на строчке с циклом while у нас произойдет вот такая операция:

while(m >= (0 - 1) % n + 1)

Например пусть m = 20, n = 10, тогда в строчке выше, операция -1 % 10 в c++ вернет -1, а в python результат этой же операции будет 9.

Так же т.к. автор не дал ни условия задачи, ни ограничений для m и n, то предположу, что n > 0, а для m думаю любое значение.

Тогда, чтобы не было проблемы описанной выше, можно перед циклом пройти эту итерацию отдельно:

# n > 1 т.к. при n == 1 операция -1 % 1 вернет и там, и там 0
if n > 1 and m >= 1:
    j = 1

В итоге получаем такой код:

n = int(input())
m = int(input())
j = 0

if n > 1 and m >= 0:
    j = 1

while m >= (j - 1) % n + 1:
    m -= (j - 1) % n + 1
    j += 1
    
print(m)

Не знаю зачем вам код на python если вы написали на c++, но на будущее все, что я написал выше очень просто гуглится, это говорит вам человек, который не пишет на python

P.S. Нашел на github конвертер из c++ в python код, не знаю, точно как там все работает, не проверял, но думаю для маленький задач сгодится :)

→ Ссылка