我正在尝试将C ++代码转换为python但我被卡住了原始C ++代码int main(void){ int levels = 40; int xp_for_first_level = 1000; int xp_for_last_level = 1000000; double B = log((double)xp_for_last_level / xp_for_first_level) / (levels - 1); double A = (double)xp_for_first_level / (exp(B) - 1.0); for (int i = 1; i <= levels; i++) { int old_xp = round(A * exp(B * (i - 1))); int new_xp = round(A * exp(B * i)); std::cout << i << " " << (new_xp - old_xp) << std::endl; }}python代码import mathfrom math import logfrom math import explevels = 40xp_for_first_level = 1000xp_for_last_level = 1000000B = log(xp_for_last_level / xp_for_first_level) / (levels - 1)A = xp_for_first_level / (exp(B) - 1.0)for i in range(1, levels): old_xp = round(A * exp(B * (i - 1))) new_xp = round(A * exp(B * i)) print(i + " " + (new_xp - old_xp))感谢任何帮助,我似乎无法完全发挥作用,当我修复一个错误时,我正在创建另一个错误。
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
对于最后一行,您可以简单地使用:
print(i, new_xp - old_xp)
正如@pfnuesel所说,您将需要稍微调整for循环的范围。
最后,您不需要import math。您可以将前3行替换为:
from math import log, exp
HUWWW
TA贡献1874条经验 获得超12个赞
将print行更改为:
print("%i %i" % (i, new_xp - old_xp))有关更多信息,请参考此允许的类型转换说明符列表。
或使用新的格式方法。
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
根据您使用的python版本,C ++代码中的转换类型会翻倍
(double)xp_for_last_level / xp_for_first_level
可能需要在python代码中加以考虑。在python 3中,您将获得一个float;在较旧的python中,您可以执行以下操作:
from __future__ import division
然后xp_for_last_level / xp_for_first_level会给你一个浮动。
添加回答
举报
0/150
提交
取消
