python求前n个正整数的和_Python求解几个整数问题

可以编程如下:

b = -100

for i in range(200):

b = b + 1

a = -100

for i in range(200):

a = a + 1

if a * a - b * b == 89:

print('(a,b)'+'='+'('+str(a)+','+str(b)+')')

print('OVER')

结果显示为:

(a,b)=(-45,-44)

(a,b)=(45,-44)

(a,b)=(-45,44)

(a,b)=(45,44)

OVER

这个题目稍难些,数学方法可以这样做:

可以看出a+b=48,且a-b=16,故a=32,b=16。这种做法比较巧妙,不过不能深想,因为有些细节不好解释清楚,可以用无理数与有理数的关系,也可以用到一点儿比较高深的知识,比如线性代数里面的线性组合。

现在我们换个思路,用编程的思想来解决这个问题(这也是科技发展的必然趋势):

m = 0

n = 0

number1 = m + n

number2 = m - n

import math

for i in range(100):

n = n + 1

m = n

for i in range(100):

m = m + 1

number1 = m + n

number2 = m - n

if math.sqrt(m+n) + math.sqrt(number2) == 4 * math.sqrt(3)+4:

print('m='+str(m))

print('n='+str(n))

结果如下:

m=32

n=16

这个题目跟问题2有些近似,编程如下:

import math

x = 0

y = 0

for i in range(100):

x = x + 1

y = x

for i in range(100):

y = y + 1

if abs(math.sqrt(x) + math.sqrt(y) - math.sqrt(72)) < 1.0e-14:

print('('+str(x)+','+str(y)+')')

print('OVER')

结果显示为:

(2,50)

(8,32)

OVER

喜欢的话请关注微信公众号:迷你恐龙的博客,公众号中有更多好玩的文章呦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值