概述
我实在是想吐槽python了……
= =其实是吐槽自己……
python太过强大,以至于现在很少想一起一样,仔细考虑数据范围……
导致今天……非常惨烈的arithmetic overflow……
C啊……C啊……
说说解题方法吧,那就是模拟计算那个公式的步骤,从中心开始向外扩就好了~
#include <stdio.h>
int toggle(int *x, int *y)
{
int z;
z = *x;
*x = *y;
*y = z;
}
int
countLength(int x, int y)
{
x += y;
while (y>0)
{
x /= 10;
y /= 10;
}
if (x>0)
return 1;
return 0;
}
int
main()
{
int i;
int ans = 0;
int numerator = 1, denominator = 2;
for (i=0; i<50; i++)
{
numerator += 2*denominator;
toggle(&numerator, &denominator);
if (countLength(numerator, denominator))
{
ans++;
printf("%d %dn", numerator+denominator, denominator);
}
}
printf("%dn", ans);
}
还有很严重的事就是,我竟然忘了如何exchange……
def main():
numerator = 1
denominator = 2
ans = 0
for i in range(1000):
numerator += 2*denominator
denominator, numerator = numerator, denominator
if len(str(numerator+denominator))>len(str(denominator)):
ans += 1
print(ans)
if __name__ == '__main__':
main()
python代码还是比较简单的……
最后
以上就是仁爱小霸王为你收集整理的Project Euler 57的全部内容,希望文章能够帮你解决Project Euler 57所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复