网易游戏数据挖掘分析笔试题

一张数据表有三个字段,ID, gametime, coin,记录用户某次登录的持续时长,以及在此次登录中获得的金币总数,示例数据如下:

ID

Gametime

Coin

1

3600

10

2

2400

20

1

1800

30

3

60

20

1、用sql语句获取每个用户登录持续时间最长的一次获得的金币量。

答:假设该表名为gametable,sql语句如下

select b.ID,a.Coin
from gametable a,
(select ID,max(Gametime) as Maxtime from gametable group by ID) b
where a.ID=b.ID and a.Gametime=b.Maxtime;

2、用任意语言编写一个函数,输入是一个整数,要求返回这个整数的逆序整数,例如输入1234,输出应该是4321

答:使用python代码实现整数逆序

def inverse_num(one_num):    
    if one_num==0:
        return 0
    else:
        if one_num>0:
            flag=True
        else:
            flag=False 
            one_num*=-1
        one_num_list=list(str(one_num)) #将整数分解为字符列表
        while one_num_list[-1]=='0':
            one_num_list.pop()
        tmp=''.join(one_num_list[::-1]) #将字符列表逆序再组合为字符串
        if flag:
            return int(tmp) #将字符串转换为整数
        else:
            return int('-'+tmp) #同上

##测试用例
if __name__ == '__main__':
    one_num_list = [1234,-1234,1200,0]
    
    for one_num in one_num_list:
        print(one_num,inverse_num(one_num))

运行结果:

3、请使用python语言完成以下编程问题,程序接受一个整数n输入,输出为一个n层的金字塔图形

如n=2时输出

 *

***

如n=3时输出

  *

 ***

*****

请使用最简洁的python代码完成


答:python代码如下:

def prtstar(n):
    for i in range(1,n+1):
        print(' '*(n-i) + '*'*(2*i-1))  

运行结果:

猜你喜欢

转载自www.cnblogs.com/shujuxiong/p/9291871.html