鱼C论坛

 找回密码
 立即注册
查看: 4532|回复: 28

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

[复制链接]
发表于 2017-11-26 20:07:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 冬雪雪冬 于 2017-11-28 22:22 编辑

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

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


题目:


如下一组数字:2进制的11,3进制的222, 4进制的3333,一直到16进制的FFFFFFFFFFFFFFFF
求它们的和是多少。

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2017-11-26 20:51:14 | 显示全部楼层
  1. s = '1,2,3,4,5,6,7,8,9,A,B,C,D,E,F'.split(',')
  2. print(sum(int(v,base=k) for k,v in {k:v*k for k,v in enumerate(s,start=2)}.items()))
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-26 20:54:05 | 显示全部楼层
  1. result = 0

  2. for i in range(2,17):
  3.     result += i**i

  4. print(result-15)
  5. #18896062057839751428
  6.    
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-26 23:24:51 | 显示全部楼层
  1. #!usr/bin/eno python
  2. # -*- coding: UTF-8 -*-

  3. '''
  4. 题目: 如 二进制的11 三进制的222 四进制的3333 以至到 十六进制的FFFFFFFFFFFFFFFF 求他们的和
  5. 思路: 将他们分别+1, 就能得到他们通项公式 n**n-1
  6. 如 二进制的 11 + 1 => 100 => 2 ** 2 -1
  7.     三进制的 222 + 1 => 1000 => 3 ** 3 -1
  8.     四进制的 3333 + 1 => 10000 => 4 ** 4 -1
  9.     如此类推
  10.    
  11. '''
  12. print(sum([(n ** n - 1) for n in range(2, 17)]))
复制代码

希望这种类型的题目可以先给答案出来, 不然自己错了都不知道

评分

参与人数 2荣誉 +3 鱼币 +5 收起 理由
冬雪雪冬 + 3 + 3
SixPy + 2 支持楼主!

查看全部评分

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

使用道具 举报

发表于 2017-11-26 23:35:39 | 显示全部楼层
def sum_up (number_list, base = 10):
        result = 0
        for each in number_list:
                result += int(str(each[0]),base=each[1])
        return result

list1 = [[11,2],[2222,3],[3333,4],['fffffff',16]]
print(sum_up(list1,10))

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 07:22:52 | 显示全部楼层
  1. print(sum((i-1) * i ** j for i in range(2, 17) for j in range(i)))
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 09:09:54 | 显示全部楼层
本帖最后由 jerryxjr1220 于 2017-11-27 09:13 编辑
  1. print(sum(int('123456789ABCDEF'[k]*(k+2),k+2) for k in range(15)))
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 09:34:14 | 显示全部楼层
  1. def getResult1(n): #求n进制的nnnn……的10进制值
  2.     result = 0
  3.     for i in range(n):
  4.         result += (n-1) * (n**i)
  5.     return result

  6. def getSum(n):
  7.     sumResult = 0
  8.     for i in range(2, n+1):
  9.         sumResult += getResult1(i)
  10.     return sumResult

  11. print(getSum(16))
  12.         
  13. # 和为18896062057839751428
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 09:58:01 | 显示全部楼层
本帖最后由 peter89623 于 2017-11-27 09:59 编辑
  1. def Rot(a):
  2.     b=0
  3.     for i in range(a):
  4.         b=b+a**i
  5.     b=(a-1)*b
  6.         
  7.     return b

  8. c=0
  9. for t in range(2,17):
  10.     c=c+Rot(t)

  11. print(c)
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 13:27:03 | 显示全部楼层
本帖最后由 qwc3000 于 2017-11-27 13:28 编辑

# x: 循环次数
# y: 进制数
def Conversion(x,y):
    result=1
    if x==0:
        return result
    else:
        for i in range(x):
            result=result*y
        return result

def list_gernator(num):
    n=2
    while n<=num:
        result = [n-1 for i in range(n)]
        yield result
        n=n+1
    # return 'done'
g=list_gernator(16)
result=0
for x in g:
    for  i in range(len(x)):
        result = result + x * Conversion(i, len(x))
    print(x)
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 13:50:11 | 显示全部楼层
  1. sum([x**x-1 for x in range(2, 17)])
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 14:32:42 | 显示全部楼层
本帖最后由 qwc3000 于 2017-11-27 14:39 编辑

def list_map(x):
    l_map = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F', }
    if x<10:
        y=str(x)
    else:
        y=l_map[x]
    return y
# list 产生
def list_gernator(num):
    n=2
    while n<=num:
        result=map(list_map,[n-1 for i in range(n)])
        yield list(result)
        n=n+1
    # return 'done'
g=list_gernator(16)
result=0
for x in g:
    str_x=''.join(x)
    result=result+int(str_x,len(x))
print(result)

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 17:12:08 | 显示全部楼层
看看是不是对的
  1. l = []
  2. for i in range(2,17):
  3.     l.append(i**i-1)
  4. print(l)
  5. print(sum(l))
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-27 17:35:23 From FishC Mobile | 显示全部楼层
sum=0
for i in range(1,17):
    for j in range(0,i+1):
        sum+=i*(i+1)**j
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-28 17:06:51 | 显示全部楼层
  1. def transform_to_decimal(hex, num_str):
  2.     result = 0
  3.     for i in range(len(num_str)):
  4.         num = hex - 1
  5.         result += num * hex ** i
  6.     return result

  7. nums = [str(i)*(i+1) for i in range(1,10)] + ["a" * 11, "b" * 12, "c"*13, "d"*14, "e"*15, "f"*16]

  8. all_sum = 0
  9. for each in nums:
  10.     all_sum += transform_to_decimal(len(each), each)

  11. print(all_sum)
复制代码

18896062057839751428

评分

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

查看全部评分

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

使用道具 举报

发表于 2017-11-29 11:30:56 | 显示全部楼层
sum=0
for i in range(1,16):
    for a in range(0,i+1):
        sum=sum+i*(i+1)**a
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-29 15:19:49 | 显示全部楼层
# 18896062057839751428
sum(x**x-1 for x in range(2,17))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-1 13:56:09 | 显示全部楼层
如下
360截图20171201135552476.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-1 15:17:38 | 显示全部楼层
j
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-1 15:42:01 | 显示全部楼层
def per_10(n): #求 (n-1)*n^(n-1)+...+(n-1)*n^0的值
    zhi = n-1 #第一个数
    dishu = n #底数
   
    result = tmp = 0
    for zhishu in range(n):
        result = zhi* (dishu**(zhishu)) + tmp
        tmp = result
            
    return result

#求2~16进制的和

he = tmp1 = 0
for i in range(2,17):
    he = per_10(i) + tmp1
    tmp1 = he

print(he)

#输出结果是18896062057839751428
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 06:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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