网易笔试编程题

数位之和

定义,表示在十进制下的各位数字和。
现在给定一个,请你求出最小正整数,满足.

输入描述:
第一行数据组数,对于每组数据,一行一个数字。

输出描述:
对于每组数据,一行一个整数表示最小的。

输入例子1:
2
7
9

输出例子1:
7
9

输入例子2:
2
13
18

输出例子2:
49
99
思路:十进制数中9最大

if __name__ == '__main__':
        n = int(input())
        for i in range(n):
            m = int(input())
            num = []
            while m:
                if m%9==0:
                    num+=[9]*(m//9)
                    m = 0
                else:
                    num.append(m % 9)
                    m -= m % 9
            num = sorted(num)
            print("".join( str(x) for x in num))
2.有三种葡萄,每种分别有\mathit a,b,ca,b,c颗。有三个人,第一个人只吃第\text 1,21,2种葡萄,第二个人只吃第\text 2,32,3种葡萄,第三个人只吃第\text 1,31,3种葡萄。

适当安排三个人使得吃完所有的葡萄,并且且三个人中吃的最多的那个人吃得尽量少。

输入描述:
第一行数字\mathit TT,表示数据组数。
接下来\mathit TT行,每行三个数\mathit a,b,ca,b,c
1 \leq a,b,c \leq 10^{18} , 1 \leq T \leq 101≤a,b,c≤10
18
,1≤T≤10
输出描述:
对于每组数据,输出一行一个数字表示三个人中吃的最多的那个人吃的数量。
示例1
输入
2
1 2 3
1 2 6
输出
2
3
示例2
输入
1
12 13 11
输出
12
思路:观察规律,发现可以看成是三个人分别站在三角形的顶点(假定可以形成三角形)。设三角形两个短边是a,b,长边是c。则,若两短边之和大于等于长边的一半,可实现总数平分;反之,则结果为长边的一半。

T = int(input())
for _ in range(T):
    food = list(map(int,input().split()))
    max_v,sum_v = max(food),sum(food)
    ans = 0
    if sum_v-max_v>=max_v//2:
        ans =(sum_v+2)//3
    else:
        ans = (max_v+1)//2
    print(ans)

完美序列

在这里插入图片描述
输出描述:对于每组数据,一行一个数字表示最长完美的连续子序列的长度。
示例1
输入
2
5
1 3 9 2 6
5
4 2 9 16 7
输出
3
3
在这里插入图片描述

if __name__ == '__main__':
    t = int(input())
    for _ in range(t):
        n = int(input())
        li = list(map(int, input().split(" ")))
        result = left = 0
        left_sum = 0
        for i in range(1, len(li)):
            left_sum += li[i - 1]
            while li[i] < left_sum and left < i:
                left_sum -= li[left]
                left += 1
            result = max(result, i - left + 1)
        print(result)
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值