鱼C论坛

 找回密码
 立即注册
查看: 5700|回复: 72

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

[复制链接]
发表于 2018-2-3 20:18:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 冬雪雪冬 于 2018-2-7 20:31 编辑

我们的玩法做了一下改变:

1. 楼主不再提供答案。
2. 请大家先独立思考”,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。
4. 根据答案的质量给予1~3鱼币的奖励。

题目:
给出一个整数与其左右反转数的差值的绝对值,例如整数是3571,反转数是1753,则差值的绝对值为1818

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
qwe1231069 + 1 + 1 通过做题知道了好多

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-3 20:45:42 | 显示全部楼层
  1. def reverse(num):
  2.     digital = list(str(num))
  3.     loop = len(digital)
  4.     new_num = ""
  5.     while loop:
  6.         new_num += digital.pop()
  7.         loop -= 1
  8.     new_num = int(new_num)
  9.     result = abs((new_num - num))
  10.     print(result)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-3 21:13:53 | 显示全部楼层
  1. def intsort(num):
  2.     snum = str(num) # 将整数转换成字符串
  3.     length = len(snum) # 记录字符串长度
  4.     # 将字符串反转
  5.     nums = ''         
  6.     for i in range(length-1,-1,-1):
  7.         nums = ''.join([nums,snum[i]])
  8.     mun = int(nums)  # 将反转后的字符串转换成整数
  9.     intsub = abs(num-mun)  # 计算差值的绝对值
  10.    
  11.     return intsub
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-3 21:25:42 | 显示全部楼层
  1. def f(x):
  2.     temp = list(str(x))[::-1]
  3.     rev = ''
  4.     for each in temp:
  5.         rev += each
  6.     return abs(x - int(rev))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-3 21:55:15 | 显示全部楼层
  1. def f(n):
  2.         return abs(n - int(''.join(reversed(list(str(n))))))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-3 22:22:20 | 显示全部楼层
  1. num = int(input("Enter a number: "))
  2. num_rev = int(str(num)[::-1])
  3. print(abs(num - num_rev))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-3 22:25:47 | 显示全部楼层
本帖最后由 冰封雪舞 于 2018-2-3 22:27 编辑

zs = input('请输入一个整数')
if int(zs)>=0:
  fz = int(zs[::-1])
else:
  fz =-int((zs)[::-1][:-1])
cz =abs(int(zs)-fz)
print('这个数的反转数是%s,反转数的差值的绝对值是%s'%(fz,cz))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-3 22:27:29 | 显示全部楼层
  1. def fun1(n):
  2.     m = int(str(n)[::-1])
  3.     if m>=n:
  4.         fab = m-n
  5.     else:
  6.         fab = n-m
  7.     return fab

  8. n=int(input('输入一个正整数:'))
  9. print(fun1(n))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 05:25:05 | 显示全部楼层
#-*- coding:utf-8 -*-
a = int(input("number="))
init = a
n = len(str(a))
result = 0
while n:
    b = a%10
    a = a//10
    result = result*10+b
    n = n -1

if result>init:
    final = result-init
else:
    final = init - result

print('整数是%d,反转数是%d,则差值的绝对值为%d' % (init,result,final))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 07:07:30 | 显示全部楼层
本帖最后由 yjsx86 于 2018-2-6 09:45 编辑
  1. n = -32
  2. print(abs(n - (int(str(n)[::-1]) if n>0 else int('-'+str(n)[1:][::-1]))))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 09:48:18 | 显示全部楼层
初学者,用最简笨的语句谢了一个
  1. def reverse(n):
  2.     lis1 = []
  3.     while n != 0:
  4.         lis1.append(n%10)
  5.         n //= 10
  6.     lis2 = [str(i) for i in lis1]
  7.     str1 = ''.join(lis2)
  8.     rn = int(str1)
  9.     return rn
  10. n1= int(input('请输入整数:\n'))
  11. rn1 = reverse(n1)
  12. result = abs(n1 - rn1)
  13. print(rn1)
  14. print(result)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 10:39:19 | 显示全部楼层
  1. def cal(x):
  2.     return abs(eval(str(x)+'-'+str(x)[::-1]))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 12:36:10 | 显示全部楼层
用字符串求反转数
  1. def fun(n):
  2.     return abs(n - int(str(n)[::-1]))
复制代码

如果算上负整数,-3571反转数-1753,取绝对值,应该是一样的
  1. def fun2(n):
  2.     n = abs(n)
  3.     return abs(n - int(str(n)[::-1]))
复制代码

如果纯粹是整数的操作,我觉得是不断地整除和取余
  1. def fun3(n):
  2.     n = abs(n)
  3.     div_n, reverse_n = divmod(n, 10)
  4.     while div_n:
  5.         div_n, mod_n= divmod(div_n, 10)
  6.         reverse_n = reverse_n * 10 + mod_n
  7.     return abs(n - reverse_n)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 13:02:17 | 显示全部楼层
  1. def math(num=3571):
  2.     str_num = str(num)
  3.     List = ''
  4.     for i in range(1,len(str_num)+1):
  5.         List += str(str_num[-1*i])

  6.     List = int(List)
  7.     c = num - List
  8.     if c < 0:
  9.         c *= -1
  10.     print("数字:%d,反转值:%d, 绝对差值: %d",(num,List,c))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 13:23:15 | 显示全部楼层
  1. def turnaroundAbs(num):
  2.     listed = list(reversed(list(str(num))))
  3.     stred = ''
  4.     for each in listed:
  5.         stred+=each
  6.     return num-int(stred)
  7. print(turnaroundAbs(int(input('请输入一个整数:'))))
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
冬雪雪冬 + 1 + 1 没有考虑绝对值

查看全部评分

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

使用道具 举报

发表于 2018-2-4 16:15:04 | 显示全部楼层
  1. temp = input("请输入一个数字:")
  2. temp1 = temp[::-1]
  3. number = int(temp)
  4. number1 = int(temp1)
  5. number2 = abs(number-number1)
  6. print("原来输入的数字为:",number)
  7. print("反转后数字为:",number1)
  8. print("两个数字的差的绝对值为:",number2)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 17:27:44 | 显示全部楼层
  1. old_a = int(input('请输入一个整数:'))
  2. list_new_a = list(str(old_a))    #将整数列表化
  3. list_new_a.reverse()             #将整数列表反转

  4. new_a = 0

  5. #每一位的数字与它的实际位数相乘,并求和。
  6. for i in range(len(list_new_a)):
  7.     new_a += int(list_new_a[i]) * (10**(len(list_new_a)-i-1))

  8. if new_a > old_a:
  9.     print('得到其与左右反转数的差值绝对值是:', new_a - old_a)
  10. else:
  11.     print('得到其与左右反转数的差值绝对值是:', old_a - new_a)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 19:33:41 | 显示全部楼层
程序:
def cul(num):
    num2 = list(num)
    num2.reverse()
    num4 = str()
    for i in num2:
        num4 = num4+str(i)
    num4 = int(num4)
    num3 = int(num) -num4
    if num3 <0:
        num3 = -num3
    return num3
   

num = input()
num2 = cul(num)
print(num2)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 19:34:44 | 显示全部楼层
temp = int(input('请输入一个整数:'))
num1 = int(temp)
num2 = int(str(num1)[::-1])
print (abs(num1 - num2))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

发表于 2018-2-4 19:42:19 | 显示全部楼层
赶上了!
  1. def res(string):
  2.     str1=str2=0
  3.     mid = len(string)//2
  4.     if len(string)!=1:
  5.         str1 = res(string[:mid])
  6.         str2 = res(string[mid:])
  7.     if str1!=0 or str2!=0:
  8.         string = str2+str1
  9.     return string

  10. str1 = input()
  11. str2 = res(str1)
  12. result = abs(int(str1)- int(str2))
  13. print(result)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 13:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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