鱼C论坛

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

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

   关闭 [复制链接]
发表于 2018-7-17 14:57:31 | 显示全部楼层
for x in range(100000):
    if (x+100)**0.5%1 == 0 and (x+268)**0.5%1 == 0:
        print(x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:27:34 | 显示全部楼层
count = 100000
while (count + 100) ** 0.5 != int((count + 100) ** 0.5) or (count + 268) ** 0.5 != int((count + 268) ** 0.5):
    count -= 1
print(count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-5 09:37:30 | 显示全部楼层
import math

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

使用道具 举报

发表于 2018-8-11 14:22:01 | 显示全部楼层
import math
for i in range(10000):
    a = (i+100)**0.5
    b = (i+268)**0.5
    if int(a)==a and int(b)==b:
        print '该数为:', i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-23 10:10:35 | 显示全部楼层
强行骚……

import math
import itertools
numbers = itertools.count(-100)
for number in numbers:
    a = math.sqrt(number + 100)
    b = math.sqrt(number + 268)
    if a == int(a) and b == int(b):
        print(number)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-23 11:23:27 | 显示全部楼层
  1. from math import *
  2. list1 = []
  3. for number in range(0,10000):
  4.     x = int(sqrt(number + 100))
  5.     y = int(sqrt(number + 268))
  6.     if (number + 100 == pow(x,2)) and (number + 268 == pow(y,2)):
  7.         list1.append(number)
  8. print(list1)
复制代码



修改后的代码
  1. list1 = []
  2. for number in range(0,10000):
  3.     if(sqrt(number + 100)%1 ==0) and (sqrt(number + 268)%1 ==0):   
  4.         list1.append(number)
  5. print(list1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 18:11:23 | 显示全部楼层

import math
for i in range(10000):
    a=math.sqrt(i+100)
    b=math.sqrt(i+268)
    c=int(a)
    d=int(b)
    if a*a==c*c and b*b==d*d:
        print(i)



较之答案,有些冗余
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-3 14:14:53 | 显示全部楼层
本帖最后由 god圣锋 于 2018-9-3 14:18 编辑
  1. import math

  2. count = 0

  3. for i in range(-100,10001):

  4.     if math.sqrt(i+100)% 1 == 0.0 and math.sqrt(i+268)% 1 == 0.0:

  5.         print(i,'\t',end = ' ')

  6.         count += 1
  7.         
  8.         if not count %5:
  9.             print('\n')

  10. print('\n\n总共有%d个数\n' % count)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 19:18:50 | 显示全部楼层

问个问题,把len(list1) 写在前面用个变量代替的话,会不会更节约时间?即每次循环会不会重复计算len(list1)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 21:03:20 | 显示全部楼层
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-9-4 21:28:44 | 显示全部楼层
import math
for i in range(-100,10005,1):
    a = int(math.sqrt(i+100))
    b = int(math.sqrt(i+268))
    if a * a == (i+100) and b * b == (i+268):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-14 15:45:22 | 显示全部楼层
import math
for i in range(10000):
    x = int(math.sqrt(i+100))
    y = int(math.sqrt(i+268))
    if x * x == (i+100) and y * y == (i+268):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-14 17:09:59 | 显示全部楼层
import math
for i in range(10000):
    x = int(math.sqrt(i+100))
    y = int(math.sqrt(i+268))
    if x * x == (i+100) and y * y == (i+268):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-8 13:38:41 | 显示全部楼层
    number=1
    import math
    while True:
        if not math.sqrt(number+100)%1 and not math.sqrt(number+268)%1:
            print(number)
            if number>10000:break
        number +=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-14 21:59:45 | 显示全部楼层
一行的那位大神,思路真六
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-14 22:05:39 | 显示全部楼层
本帖最后由 Roc乘风 于 2018-10-14 22:06 编辑
pizzapasta 发表于 2017-4-11 08:28
import math

for x in range(10000):


请教  ,这个is_integer()  是用来判断  一个数字是否是整数吗?

百度没有搜到详细的 相关
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 15:11:48 | 显示全部楼层
import math
for a in range(100000):
    b=int(math.sqrt(a+100))
    c=int(math.sqrt(a+268))
    if b*b==a+100 and c*c==a+268:
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-23 13:08:23 | 显示全部楼层
  1. import math

  2. for x in range(10001):
  3.     y1 = math.sqrt(x + 100)
  4.     y2 = math.sqrt(x + 268)
  5.     if y1 % int(y1) == 0 and y2 % int(y2) == 0:
  6.         print(x)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-27 14:14:43 | 显示全部楼层
from math import sqrt
def number():
    for i in range(-100,10000):
        if sqrt(i + 101)%1 == 0 and sqrt(i + 269)%1 == 0:
            print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-27 14:16:02 | 显示全部楼层
solomonxian 发表于 2017-4-19 18:38
整数%1得0, 小数会带尾巴

看到这个余1,才知道自己编写的时候,判断条件少了什么~  感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 18:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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