鱼C论坛

 找回密码
 立即注册
查看: 6370|回复: 6

[已解决]一个整数,它加上100后是一个完全平方数。再加上168又是一个完全平方数,问该数是多少

[复制链接]
发表于 2017-8-26 16:54:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一个整数,它加上100后是一个完全平方数。再加上168又是一个完全平方数,问该数是多少,用python解析
最佳答案
2017-8-26 17:58:37
  1. for x in range(-100, 10000):
  2.     a = (x + 100) ** 0.5
  3.     b = (x + 268) ** 0.5
  4.     if not a % 1 and not b % 1:
  5.         print(x)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-26 17:06:33 | 显示全部楼层
一个整数,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-26 17:56:13 | 显示全部楼层
  1. # 打表法

  2. # 计算出40000内的的完全平方数
  3. squareNum = list()
  4. for num in range(1, 2000):
  5.     squareNum.append(num**2)

  6. # 输出10000内的整数 满足题意的结果
  7. for num in range(1, 10001):  
  8.     num += 100
  9.     if num in squareNum:
  10.         num += 168
  11.         if num in squareNum:
  12.             ans = num - 268
  13.             print(ans)
复制代码


  1. from math import sqrt

  2. for num in range(1, 100000):
  3.     # 假设这个整数+100是完全平方数的数,开根后是没有小数的
  4.     # 所以将开根结果强制转换为int类型再平方应与原来的数相等
  5.     # 若相等,则满足条件
  6.     # 不相等,则不满足条件
  7.     first = sqrt(num + 100)
  8.     second = sqrt(num + 268)  # +100+168)
  9.     if int(first)**2 == num + 100 and int(second)**2 == num + 268:
  10.         print(num)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-26 17:57:34 | 显示全部楼层
  1. import math
  2. i = 9
  3. while True:
  4.     i += 1
  5.     if math.sqrt(i * i + 168).is_integer():
  6.         break
  7. print('该数是:', i * i - 100)
复制代码

  1. 该数是: 21
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-26 17:58:37 | 显示全部楼层    本楼为最佳答案   
  1. for x in range(-100, 10000):
  2.     a = (x + 100) ** 0.5
  3.     b = (x + 268) ** 0.5
  4.     if not a % 1 and not b % 1:
  5.         print(x)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-27 21:08:35 | 显示全部楼层
  1. import math
  2. n = 0

  3. while True:
  4.     x = math.sqrt(n + 100)
  5.    
  6.     if int(x) == x:
  7.         y = math.sqrt(n+268)
  8.         
  9.         if int(y) == y:
  10.             print(n)
  11.             break
  12.         else:
  13.             n += 1
  14.             
  15.     else:
  16.         n += 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-25 00:45:20 | 显示全部楼层

亲你好,不太懂第四行代码if not a%1 and not b %1:
能解释下么?感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 20:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表