连续登陆计算积分

连续1天2分,连续2天5分,连续3天10分,连续4天15分,连续5天20分,连续6天25分,连续7天40分

# 连续登陆积分 天: 积分
login_integral_map = {
    0: 0,
    1: 2,
    2: 2 + 5,
    3: 2 + 5 + 10,
    4: 2 + 5 + 10 + 15,
    5: 2 + 5 + 10 + 15 + 20,
    6: 2 + 5 + 10 + 15 + 20 + 25,
    7: 2 + 5 + 10 + 15 + 20 + 25 + 40,
}

# 用2进制保存用户登录信息,可以存redis或者mysql

# 假设 a用户 周1(0) ,3(2), 5(4)登录
user_a = 0b10101000
print(user_a)
data = bin(user_a)
login_lt = data[2:].split('0')
a_integral = 0
for i in login_lt:
    a_integral += login_integral_map.get(len(i), 0)

# 假设 b用户 周1,2 ,3(2), 5(4)登录
print('a的积分', a_integral)

user_b = 0b11101000
data = bin(user_b)
login_lt = data[2:].split('0')
b_integral = 0
for i in login_lt:
    b_integral += login_integral_map.get(len(i), 0)

print('b的积分', b_integral)

# 假设 c用户 周1,2 4,5, 7登录
user_c = 0b11001101
data = bin(user_c)
login_lt = data[2:].split('0')
c_integral = 0
for i in login_lt:
    c_integral += login_integral_map.get(len(i), 0)

print('c的积分', c_integral)
>> a的积分 6
>> b的积分 19
>> c的积分 16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值