鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 3

   关闭 [复制链接]
发表于 2018-3-2 16:21:44 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2018-3-2 16:27 编辑
  1. a,b=set(),set()
  2. #构造(10000+268)最大开方数的和(0+100)最小开方数的区间范围
  3. for i in range(int(100**0.5),int((10000+268)**0.5)):
  4.     #将再构造出来的数值范围里得出减去100的数放入集合
  5.     a.add(i**2-100)
  6.     #将再构造出来的数值范围里得出减去268的数放入集合
  7.     b.add(i**2-268)
  8. #求ab的交集放入列表,并排序
  9. c = list(a&b)
  10. c.sort()
  11. print(c)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 18:42:38 | 显示全部楼层
for i in range(10001):
    if (i+100)**(0.5)%1==0 and (i+268)**(0.5)%1==0:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 15:29:30 | 显示全部楼层
  1. for i in range(0, 10001):
  2.     x = math.sqrt(i + 100)
  3.     y = math.sqrt(i + 268)
  4.     if x - int(x) == 0 and y - int(y) == 0:
  5.         print(i, end='\t')
复制代码

这道题还算容易:)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-11 19:11:16 | 显示全部楼层
ooxx7788 发表于 2017-3-25 11:20
你们忽略了-99也是整数哦!

可是完全平方数也是非负数啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-11 19:16:56 | 显示全部楼层
  1. import math
  2. for a in range(10000):
  3.     #  math.sqrt是返回一个带根号的数
  4.     # 为什么转成整数呢,大概是去掉浮点数?
  5.     x = int(math.sqrt(a + 100))
  6.     y = int(math.sqrt(a + 268))
  7.     #如果x开平方等于这个整数加上100 并且 y开平方等于这个整数加上268,则打印这个整数
  8.     if x * x == (a + 100) and y * y == (a + 268):
  9.         print(a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-18 15:09:46 | 显示全部楼层
from math import sqrt
for i in range(1,10000):
    if sqrt(i + 100) - int(sqrt(i + 100))==0.0 and sqrt(i + 268) - int(sqrt(i + 268))==0.0:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 00:14:42 | 显示全部楼层
b = 100
c = 268
for i in range(100000000):
    if ((i+b)**0.5)%1==0 and ((i+c)**0.5)%1==0:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 12:47:58 | 显示全部楼层
import math
for i in range(-100,10001):
    if math.sqrt(i + 100)%1 == 0 and math.sqrt(i + 268)%1 == 0:
        print('这个数是:%d'%i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-27 01:12:26 | 显示全部楼层
def pow_number():
  for i in range(0,168):
      for j in range(0, 168):
          if (i**2-j**2)==168:
              if(j**2-100)>=0:
                  print(j**2-100)
凑合这看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-29 15:45:28 | 显示全部楼层
  1. import math
  2. for num in range(10000):
  3.     a = num + 100
  4.     b = num + 268
  5.     if int(math.sqrt(a)) ** 2 == a and int(math.sqrt(b)) ** 2 == b:
  6.         print(num)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 23:44:17 | 显示全部楼层
  1. '''
  2. 一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
  3. '''
  4. import math
  5. #判断一个数是否为完全平方数
  6. def isSquare(n):
  7.     x=int(math.sqrt(n))
  8.     if x*x==n:
  9.         return True
  10.     else:
  11.         return False
  12. i=0
  13. while True:
  14.     if isSquare(i+100) and isSquare(i+268):
  15.         print(i)
  16.         break
  17.     i=i+1
  18.      
  19.    
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 14:28:45 | 显示全部楼层
jerryxjr1220 发表于 2017-3-25 19:54
一行代码求解:
>>> print [x*x-100 for x in range(100) if (x*x+168)**0.5 % 1 == 0]
[-99, 21, 261, 1 ...

能说说if前面是什么思路吗,感谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-19 19:55:29 | 显示全部楼层

number = 0
while True:
    number += 1
    if int((number + 100) ** 0.5) == (number + 100) ** 0.5  and int((number + 268) ** 0.5) == (number + 268) ** 0.5 :
        print(number)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-24 14:38:15 | 显示全部楼层
import math
for i in range(-100,10000):
        a = math.sqrt(i + 100)
        b = math.sqrt(i + 268)
        if a%1 == 0 and b%1 ==0:
            if (a*a-100) == (b*b - 268) == i:
                    print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-7 21:08:07 | 显示全部楼层
import math
for i in range(0,10001) :
    m = math.sqrt(i + 100)
    n = math.sqrt(i + 268)
    if m % 1 == 0 and n % 1 == 0 :
##    if isinstance(m,int) and isinstance(n,int):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-8 18:37:03 | 显示全部楼层
for n in range (85):
    for m in range(85):
        if m*m-n*n==168:
            print(n*n-100)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 20:21:17 | 显示全部楼层
import math

for i in range(1,10001):
    if math.sqrt(i+100)%1==0 and math.sqrt(i+268)%1==0:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-5 10:32:51 | 显示全部楼层
import math
for i in range(-100,10001):
    if math.sqrt(i+100)%1==0 and math.sqrt(i+268)%1==0:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-11 21:44:33 | 显示全部楼层
import math
for i in range(10000):
    a = int(math.sqrt(i + 100))
    b = int(math.sqrt(i + 268))
    if a ** 2 == (i + 100) and b ** 2 == (i + 268):
        print(i,'加上100和加上268后都是一个完全平方数')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-12 15:14:50 | 显示全部楼层
import math
def test3():
    for i in range(0,10000):
        if ((math.sqrt(i + 100))%1 == 0) & ((math.sqrt(i + 268))%1 == 0):
            print(i)

test3()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 10:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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