无法比较从字符串转换的两个数字

时间:2018-10-03 14:33:50

标签: python-3.x

这是我的代码...这只是考虑了1到100中不是karpekar数的8和88 ...如果条件(s == n)失败

 def kaprekarNumbers(p, q):
  for i in range(p,q+1):
    n=i
    m=str(i*i);
    sl1=m[:int(len(m)/2)]
    sl2=m[int(len(m)/2):]
    if(sl2==""):
        sl2=0
    s=int(sl2)+int(sl2)
    print(s==n)
    if s==n:
        print(i)

1 个答案:

答案 0 :(得分:1)

使用字符串处理数字通常不是一个好主意。

您可以通过以下方式获取数字math.ceil(math.log10(n)) 的位数:

a

您可以使用以下数字获取数字n的后n % a 位数字

a

(请参阅:How does % work in Python?

您可以通过以下方式获取数字n的前p // (10 ** a) 位数字

INSERT INTO table_b
SELECT DISTINCT ta.Brand, GetDate(), 'Automatic' --use DISTINCT to return unique row
FROM table_a ta 
LEFT OUTER JOIN table_b tb on tb.BrandDescription=ta.Brand
WHERE ta.Brand not like '%' + ':' + '%' 
AND tb.ID is NULL --check if row exists in table_b

这些对于以10为底的Kaprekar numbers很有用。

[请注意,我没有Python副本可供检查。]