将活跃天数转化为等级,输入等级查询活跃天数

一:将活跃天数转化为等级
““因为我自己未到皇冠,所以并未计算皇冠所需活跃天数””
1.首先要知道QQ等级由用户积累的QQ活跃天数决定
计算公式:
例如:假设有一用户的当前时长等级为13级,则换算成“活跃天数”为:
“活跃天数” = 13×13+4×13 = 221天
每升一级所需的天数(T代表天数,N代表当前等级):
T=2×N+5
例如:当前等级为15级,升级到16级所需要的升级天数就为:2×15+5=35(天)
或:每升一级所需的天数(T代表天数,N代表需要升到的等级即当前等级的下一级):
T=2×N+3
例如:当前等级为15级,升级到16级所需要的升级天数就为:2×16+3=35(天)
2.将活跃天数转化为等级
套公式:用含Sn的式子表示n

3.等差数列
等差数列通项公式:
an=a1+(n-1)d 其中,n=1时 a1=S1;n≥2时 an=Sn-Sn-1。
等差数列前n项之和:
Sn=n(a1+an)÷2
运行结果如下:

这里我拿了自己的QQ做测试
‘’’


# 导入计算所需要的包
import math

inp_active_day = int(input("请输入您的活跃天数:"))

# 将活跃天数转化为等级
# 开房后是一个多位数小数,这里 // 1 用来取模华整
dj = (math.sqrt(inp_active_day + 4) // 1 - 2)

# 计算太阳月亮和星星数量
sun = dj // 16
moon = (dj - sun * 16) // 4
star = dj % 4


# 计算距下一等级需要的活跃天数
dj_next = dj + 1
# 创建循环
n = 1
sum_active_day = 0
while True:
    if n <= dj_next:

        t_day = int(n * 2 + 3)
        sum_active_day += t_day
        n = n + 1
        continue
    else:
        break

# 计算当前活跃天数和下一级活跃天数的差值
sum_count_day = sum_active_day - inp_active_day

print("您好!您的总活跃天数为:%s" % inp_active_day)

# 因为计算出来的数值含有小数点,所以这里引入.0f控制小数点位数
print("QQ等级为:%.0f级,有%.0f个太阳%.0f个月亮%.0f个星星!!!" % (dj, sun, moon, star))
print("您距离升级下一等级还需要:%s天,加油!!!"%sum_count_day)

2.输入等级查询活跃天数
““因为我自己未到皇冠,所以并未计算皇冠所需活跃天数””

在这里插入代码# 简单的QQ等级和活跃天数(根据等级查询的活跃天数不够准确)
dj = int(input("请输入qq等级:"))

# 创建循环
n = 1
active_day = 0
while True:
    if n <= dj:

        t_day = int(n * 2 + 3)
        active_day += t_day
        n = n + 1
        continue
    else:
        break

sun = dj // 16
moon = (dj - sun * 16) // 4
star = dj % 4

print("您好!您的总活跃天数为:%s" % active_day)
print("QQ等级为:%s级,有%s个太阳%s个月亮%s星星!!!" % (dj, sun, moon, star))

猜你喜欢

转载自blog.csdn.net/baidu_40662718/article/details/114341973