我是靠谱客的博主 仁爱小霸王,最近开发中收集的这篇文章主要介绍Project Euler 57,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我实在是想吐槽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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部