鱼C论坛

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

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

   关闭 [复制链接]
发表于 2017-4-21 16:04:06 | 显示全部楼层
solomonxian 发表于 2017-4-19 18:38
整数%1得0, 小数会带尾巴

明白了,多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-11 08:03:50 | 显示全部楼层

import math
for i in range(1,10001,1):
    if math.sqrt(i+100)%1 == 0 and math.sqrt(i+268)%1 == 0:
        print(i)

还是这种好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-21 21:35:55 | 显示全部楼层
  1. for i in range(10000):
  2.     for j in range(i):
  3.         if j*j==i+100:
  4.             for k in range(j+1,i):
  5.                 if k*k==i+268:
  6.                     print(i)
复制代码

看了各位大佬的代码,发现都大同小异,那我要做一股清流。。。嗯,没用到math模块,基本思路就是逆推,但速度明显慢了,还是各位大大的代码好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-25 13:51:52 | 显示全部楼层
  1. i = 100
  2. while i:
  3.         if (i*i+168)**0.5 % 1 == 0:
  4.                 print(i*i-100)
  5.         i -= 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

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

使用道具 举报

发表于 2017-6-5 15:25:53 | 显示全部楼层
  1. import math

  2. for i in range(-99,10001):
  3.     a = math.sqrt(i+100)
  4.     b = math.sqrt(i+268)
  5.     if (a == a//1 and b ==b//1):
  6.         print(i)
复制代码


做这个题的时候有问题请教楼主:
1.是否所有的模块都可以直接import,比如说爬虫类的模块!
2.这一题楼主说math模块,但是我在网上搜都比较杂乱,好在都简单,如果我以后看到其他模块的名字觉得这个模块有用,一般是怎么看这么模块的用法!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-16 15:50:35 | 显示全部楼层
  1. from math import sqrt
  2. print([x for x in range(10000) if (int(sqrt(x+100)))**2==x+100 and (int(sqrt(x+268)))**2==x+268])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-8-12 13:48:51 | 显示全部楼层
  1. import math

  2. for i in range(1,10000):
  3.     x = int(math.sqrt(i + 100)) # 用int直接取整,只有完全平方数得到的整数相乘才是平方数本身
  4.     y = int(math.sqrt(i + 268))
  5.     if (x*x == i + 100) and (y*y == i + 268):
  6.         print(i)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-18 08:47:15 | 显示全部楼层
  1. print("---------10000以内一个整数,加100和加268后都是完全平方数----------")

  2. flag = 0
  3. for x in range(0,10000):
  4.     if ((x + 100)**0.5)%1 == 0 and ((x + 268)**0.5)%1 == 0:
  5.         a = (x + 100)**0.5   #加100是哪个数的平方
  6.         b = (x + 268)**0.5   #加268是哪个数的平方
  7.         print(x,a,b)
  8.         flag += 1

  9. print("0~10000中共有此类整数个数为:")
  10. print(flag)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-4 23:12:08 | 显示全部楼层
  1. import math

  2. for number in range(-100,100000):
  3.     # To determine whether a number in an int
  4.     if (math.sqrt(number + 100) % 1 == 0) and (math.sqrt(number + 268) % 1 == 0):
  5.         print number
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-5 11:20:04 | 显示全部楼层
for a in range(10000):
        for b in range(10000):
                if b*b-a*a == 168:
                        print (a,b)
                        print (a*a-100)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-5 13:11:55 | 显示全部楼层
import math
for i in rang(10000):
        if math.sqrt(i+100)%1 == 0 and math.sqrt(i+268)%1 == 0:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-11 10:40:18 | 显示全部楼层
  1. from math import sqrt

  2. begin = int(sqrt(268) + 1)
  3. end = int(sqrt(10000) + 1)
  4. for x in range(begin,end):
  5.     for y in range(0,x):
  6.         if x * x - y * y == 168:
  7.             print('两个平方根分别是 ' + str(x) + ', ' + str(y))
  8.             print('该数可以是 ' + str(x*x - 268))
  9.             break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-13 15:43:24 | 显示全部楼层
import math
for i in range(1,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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-13 17:11:46 | 显示全部楼层
  1. import math
  2. for i in range(10000):
  3.     if math.sqrt(i + 100) == int(math.sqrt(i + 100)) and math.sqrt(i + 268) == int(math.sqrt(i + 268)):
  4.         print(i)
  5.         break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-17 00:53:16 | 显示全部楼层
# -*-coding:gbk-*-
__author__ = 'chennan'
import math
for i in range(1,10000):
    n1=math.sqrt(i+268)
    n2=math.sqrt(i+100)
    if math.trunc(n1)==n1 and math.trunc(n2)==n2:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-17 00:55:40 | 显示全部楼层

  1. # -*-coding:gbk-*-
  2. __author__ = 'chennan'
  3. import math
  4. for i in range(1,10000):
  5.     n1=math.sqrt(i+268)
  6.     n2=math.sqrt(i+100)
  7.     if math.trunc(n1)==n1 and math.trunc(n2)==n2:
  8.         print(i)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-25 15:42:05 | 显示全部楼层
  1. import math

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

使用道具 举报

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

使用道具 举报

发表于 2017-11-9 21:41:45 | 显示全部楼层
  1. t=[]
  2. for m in range(168):
  3.     for n in range(m):
  4.         if m**2-n**2==168:
  5.             x=n**2-100
  6.             t.append(x)

  7. print('符合条件的整数有:',t)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 04:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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