zoukankan      html  css  js  c++  java
  • 【面试题总结】第三篇

    我的博客中有一个系列,叫做【面试题总结】,这是这个系列的第三篇博文。
    这个系列会记录我曾经做过的面试题,每篇十道。随着以后我做的面试题越来越多,这个系列也会相应的持续更新下去。


    第一题

    题目描述

    康师傅饮料公司最近推出一种新款饮料。
    为了更好的促销,推出一项瓶盖换饮料,三个瓶盖可以兑换一瓶新的饮料。
    如果小明买了 n 瓶饮料,计算一下它最多能喝到多少瓶。

    输入描述

    初始饮料数量

    输出描述

    总共能喝到的饮料数

    示例 1

    输入

    9
    

    输出

    13
    

    提示

    9 个瓶盖可以换三个新饮料,三个饮料又可以换一瓶新的。
    9 + 3 + 1 = 13

    我的解答

    class Solution:
        def changeDrank(self, numCap):
            def change(numCap):
                num_gai = numCap
                new_shui = num_gai // 3
                rest_gai = num_gai - new_shui * 3
                if (rest_gai + new_shui) >= 3:
                    a = change(rest_gai + new_shui)
                    new_shui += a
                total = new_shui
                return total
            return numCap + change(numCap)
    
    if __name__ == "__main__":
        so = Solution()
        resu = so.changeDrank(9) # 13
    

    第二题

    题目描述

    小 A 的高次方程

    小 A 在做数学作业时看到了这样一个题目,求方程 $ x3+y4+z^5=k $ 的一组正整数解 (x, y, z)
    小 A 实在做不出来这道题,于是他找你帮忙写一个程序来解决这个问题。
    由于你希望小 A 的作业让他自己做,你只需要判断是否存在解即可。

    输入描述

    第一行一个正整数 T,表示数据组数;
    对于每一组数据,每行输入一个正整数 k。
    1 <= T <= 200, 1 <= k <= $ 10^{12} $。

    输出描述

    对于每一组数据,若解存在,输出一行 YES(不含引号),否则输出 NO(不含引号)。

    示例 1

    输入

    3
    3
    25
    2
    

    输出

    YES
    YES
    NO
    

    提示

    第一组数据,可以找到解 x = y = z = 1
    第二组数据,可以找到解 x = 2, y = 2, z = 1
    第三组数据,无法找到解。

    我的解答

    # 此题不会,答案不对
    if __name__ == "__main__":
        from itertools import combinations_with_replacement as com
        nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        com_resu = list(com(nums, 3))
        num = int(input())
        result = []
        for i in range(num):
            is_add = "NO"
            value = int(input())
            for x, y, z in com_resu:
                pow_sum = pow(x, 3) + pow(y, 4) + pow(z, 5)
                if pow_sum == value:
                    is_add = "YES"
                    break
            result.append(is_add)
        print("\n".join(result))
    
  • 相关阅读:
    [BZOJ1657] [Usaco2006 Mar] Mooo 奶牛的歌声 (单调栈)
    [BZOJ1016] [JSOI2008] 最小生成树计数 (Kruskal)
    [BZOJ1015] [JSOI2008] 星球大战starwar (并查集)
    [BZOJ1007] [HNOI2008] 水平可见直线 (凸包)
    [BZOJ1061] [Noi2008] 志愿者招募 (费用流)
    [BZOJ1051] [HAOI2006] 受欢迎的牛 (强联通分量)
    BZOJ2299: [HAOI2011]向量
    BZOJ2783: [JLOI2012]树
    BZOJ3521: [Poi2014]Salad Bar
    BZOJ2429: [HAOI2006]聪明的猴子
  • 原文地址:https://www.cnblogs.com/junsircoding/p/15664995.html
Copyright © 2011-2022 走看看