西北工业大学cpSkill平台Python作业NOJ(81-90)

仅供参考
前20传送门:https://blog.csdn.net/weixin_43520256/article/details/109137288
21-30传送门:https://blog.csdn.net/weixin_43520256/article/details/109137366
41-50传送门:https://blog.csdn.net/weixin_43520256/article/details/109137411
51-60传送门:
https://blog.csdn.net/weixin_43520256/article/details/109365933

61-70传送门:https://blog.csdn.net/weixin_43520256/article/details/109137461
71-80传送门:https://blog.csdn.net/weixin_43520256/article/details/109137497
在这里插入图片描述

# # 81
# # 和为0
# class A:
#     def __init__(self):
#         pass
#
#     def add_zero(self, l):
#         t = []
#         for i in range(0, len(l)):
#             for j in range(i + 1, len(l)):
#                 for k in range(j + 1, len(l)):
#                     s = []
#                     if (l[i] + l[j] + l[k]) == 0:
#                         v = [l[i], l[j], l[k]]
#                         v.sort()
#                         s.append(v)
#                         t.extend(s)
#         return t
#
#
# x = input()
# l1 = x.split()
# for i in range(0, len(l1)):
#     l1[i] = int(l1[i])
# a = A()
# l2 = a.add_zero(l1)
# print(l2)

在这里插入图片描述

# # 82
# # 矩形类
# class Rectangle:
#     def __init__(self, l, w):
#         self.l = l
#         self.w = w
#
#     def area(self):
#         return self.l * self.w
#
#
# x = input()
# l, w = map(int, x.split())
# r = Rectangle(l, w)
# print(r.area())

在这里插入图片描述

# # 83
# # 罗马数字转整数 2
# class RomanInt:
#     def __init__(self, s):
#         self.s = s
#
#     # def toInt(self):
#     #     temp = 0
#     #     for i in range(0, len(self.s)):
#     #         if self.s[i] == 'I':
#     #             temp += 1
#     #         elif self.s[i] == 'V':
#     #             temp += 5
#     #         elif self.s[i] == 'X':
#     #             temp += 10
#     #         elif self.s[i] == 'L':
#     #             temp += 50
#     #         elif self.s[i] == 'C':
#     #             temp += 100
#     #         elif self.s[i] == 'D':
#     #             temp += 500
#     #         elif self.s[i] == 'M':
#     #             temp += 1000
#     #         else:
#     #             temp += 0
#     #     return temp if 1 < temp <3999 else False
#
#     def fun(self):
#         d = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
#         result = 0
#         for i in range(len(self.s) - 1):
#             if d[self.s[i]] < d[self.s[i + 1]]:
#                 result -= d[self.s[i]]
#             else:
#                 result += d[self.s[i]]
#         result += d[self.s[len(self.s) - 1]]
#         return result if 1 < result < 3999 else False
#
#
# x = input()
# a = RomanInt(x)
# print(a.fun())

在这里插入图片描述

# # 84
# # 闭合括号
# def fun(s):
#     b = []
#     flag = True
#     for i in s:
#         if i == "(" or i == "[" or i == "{":
#             b.append(i)
#         elif i == ")":
#             if len(b) == 0 or b.pop() != "(":
#                 return False
#         elif i == "]":
#             if len(b) == 0 or b.pop() != "[":
#                 return False
#         elif i == "}":
#             if len(b) == 0 or b.pop() != "{":
#                 return False
#     if len(b) != 0:
#         flag = False
#     return flag
#
#
# l = list()
# while True:
#     x = input()
#     if x != "":
#         l.append(x)
#     else:
#         break
# for i in range(0, len(l)):
#     print(fun(l[i]))

在这里插入图片描述

# # 85
# # 罗马数字1
# class Roman_Int:
#     def __init__(self, n):
#         self.n = n
#
#     def to_Int(self):
#         if 1 <= self.n <= 3999:
#             i1 = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
#             s = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
#             ret = ""
#             for i in range(0, len(i1)):
#                 while self.n >= i1[i]:
#                     self.n -= i1[i]
#                     ret += s[i]
#             return ret
#
#
# num = int(input())
# r = Roman_Int(num)
# print(r.to_Int())

在这里插入图片描述

# # 86
# # 圆类
# import math
#
#
# class Circle:
#
#     def __init__(self, _r):
#         self.r = _r
#         self.PI = 3.14
#
#     def area(self):
#         return self.PI * math.pow(self.r, 2)
#
#     def perimeter(self):
#         return 2 * self.PI * self.r
#
#
# r = float(input())
# c = Circle(r)
# print(c.area(), c.perimeter(), sep=" ")

在这里插入图片描述

# # 87
# # 唯一子集
# # 已更正
from math import pow


class A:
    def __init__(self, _s):
        self.s = _s

    def fun(self):
        Len = len(self.s)
        ll = []
        for ii in range(0, int(pow(Len, 2) - 1)):
            lll = []
            for j in range(Len):
                if (ii >> j) % 2:
                    lll.append(self.s[Len - j - 1])
            lll.sort()
            ll.append(lll)
        if ll[-1] != self.s:
            ll.append(self.s)
        return ll


x = input()
l1 = x.split()
for i in range(0, len(l1)):  # 变为int
    l1[i] = int(l1[i])

s1 = set(l1)
l1 = list(s1)  # 去重
l1.sort(reverse=False)  # 排序
a = A(l1)
print(a.fun())

在这里插入图片描述

# # 88
# # 特定目标
# class A:
#     def __init__(self, _s):
#         self.s = _s
#
#     def fun(self, n):
#         for i in range(0, len(self.s)):
#             isTrue = False
#             for j in range(0, len(self.s)):
#                 if i == j:
#                     break
#                 else:
#                     if self.s[i] + self.s[j] == n:
#                         print(self.s[j], "+", self.s[i], "=", n, sep=" ")
#                         isTrue = True
#                         break
#             if isTrue:
#                 break
#
#
# x = input()
# l1 = x.split()
# num = int(input())
# for i in range(0, len(l1)):
#     l1[i] = int(l1[i])
# a = A(l1)
# a.fun(num)

在这里插入图片描述

# # 89
# # 反向字符串
# class A:
#     def __init__(self, _s):
#         self.s = _s
#
#     def fun(self):
#         l1 = self.s
#         l1.reverse()
#         ll = []
#         for i in range(0, len(l1)):
#             s = ""
#             s = l1[i]
#             ll.append(s)
#         return ll
#
#
# x = input()
# l1 = x.split()
# a = A(l1)
# l1 = a.fun()
# for i in range(0, len(l1)):
#     print(l1[i], end=" ")

在这里插入图片描述

# # 90
# # Pow方法
# class A:
#     def __init__(self, _x):
#         self.x = _x
#
#     def fun(self, n):
#         ret = 1
#         isTrue = False
#         if n < 0:
#             n = abs(n)
#             isTrue = True
#         if n > 0:
#             while n > 1:
#                 if n & 1 == 1:
#                     ret *= self.x
#                 self.x *= self.x
#                 n = n >> 1
#             if isTrue:
#                 return 1 / (ret * self.x)
#             return ret * self.x
#         elif n == 0:
#             return 1
#
#     def fun1(self, n, l):
#         ret = 1
#         isTrue = False
#         if n < 0:
#             n = abs(n)
#             isTrue = True
#         if n > 0:
#             while n > 1:
#                 if n & 1 == 1:
#                     ret *= self.x
#                 self.x *= self.x
#                 n = n >> 1
#             if isTrue:
#                 r = 1 / (ret * self.x)
#             r = ret * self.x
#         elif n == 0:
#             r = 1
#         return r % l
#
#
# s = input()
# x, num = map(int, s.split())
# a = A(x)
# print(a.fun(num))


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枳洛淮南✘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值