以下のコードを $ stack run convert example.py でトランスパイルする。
example.py
def solve(n: int, k: int) -> int:
for _ in range(k):
n = n % 3
return n
def main() -> None:
n, k = map(int, input().split())
ans = solve(n, k)
print(ans)
if __name__ == '__main__':
main()
コード全体
```cpp
// This C++ code is transpiled using Jikka transpiler v5.1.0.0 https://github.com/kmyk/Jikka
// The original Python code:
// def solve(n: int, k: int) -> int:
// for _ in range(k):
// n = n % 3
// return n
//
// def main() -> None:
// n, k = map(int, input().split())
// ans = solve(n, k)
// print(ans)
//
// if __name__ == '__main__':
// main()
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int64_t solve(int64_t n_0, int64_t k_1) {
return n_0;
}
int main() {
int64_t n_2 = -1;
int64_t k_3 = -1;
std::cin >> n_2;
std::cin >> k_3;
auto ans_4 = solve(n_2, k_3);
std::cout << ans_4 << ' ';
std::cout << '\n' << ' ';
}
```
Additional Information / 追加事項
以下のように // 演算も消える。
example.py
def solve(n: int, k: int) -> int:
for _ in range(k):
n = n // 3
n += 100
return n
def main() -> None:
n, k = map(int, input().split())
ans = solve(n, k)
print(ans)
if __name__ == '__main__':
main()
Summary / 概要
150 に関連
forループ内の
%
//
が単に除去されてしまう場合がある。(おそらく ABC200 B のWAの原因はこれだと思われる: 提出コード https://atcoder.jp/contests/abc200/submissions/24820809 )
Steps to reproduce / 再現方法
以下のコードを
$ stack run convert example.py
でトランスパイルする。example.py
environments:
Expected behavior / 期待される挙動
nを3で割った余りがnに代入される
Actual behavior / 実際の挙動
生成されたC++コードでは、単に演算が消える
コード全体
```cpp // This C++ code is transpiled using Jikka transpiler v5.1.0.0 https://github.com/kmyk/Jikka // The original Python code: // def solve(n: int, k: int) -> int: // for _ in range(k): // n = n % 3 // return n // // def main() -> None: // n, k = map(int, input().split()) // ans = solve(n, k) // print(ans) // // if __name__ == '__main__': // main() #includeAdditional Information / 追加事項
以下のように
//
演算も消える。example.py
生成されたC++コードでは、
n += 100
のみ反映されているコード全体
```cpp // This C++ code is transpiled using Jikka transpiler v5.1.0.0 https://github.com/kmyk/Jikka // The original Python code: // def solve(n: int, k: int) -> int: // for _ in range(k): // n = n // 3 // n += 100 // return n // // def main() -> None: // n, k = map(int, input().split()) // ans = solve(n, k) // print(ans) // // if __name__ == '__main__': // main() #include