解题思路:
"""
没有负号:
答案就是所有数的和
有负号:
只要正数和负数搭配答案就是所有的数绝对值的和
纯正数和纯负数分开考虑
"""
注意事项:
"""
0可以构造正负数
"""
#参考代码如下:
data=list(map(int,input().split()))
n,m=data[0],data[1]
list1=list(map(int,input().split()))
if m==0:# 都为加号
print(sum(list1))
else:
list2,list3=[],[] # 分别提取出正数,负数
for i in list1:
list2.append(i) if i>0 else list3.append(i) # 一个简单的三目运算符
# 正序排序
list2.sort()
list3.sort()
if 0 in list1 or len(list2)>0 and len(list3)>0 : # 正负数搭配(0可以构造)
print(sum(list2)-sum(list3))
elif len(list2)==0: # 全负数
print(list3[-1]-sum(list3[:-1])) # 保证最大数减去其他数的和
elif len(list3)==0: # 全正数
print(sum(list2[1:])-list2[0]) # 先产生负数 然后负数减去正数 最后再用一个正数去减负数->推导得到:除去最小的数的和-最小的数
0.0分
0 人评分
不容易系列2 (C语言代码)浏览:1313 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:813 |
震宇大神的杀毒软件 (C语言代码)浏览:1260 |
C语言程序设计教程(第三版)课后习题7.4 (Java代码)浏览:845 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:439 |
这可能是一个假的冒泡法浏览:1014 |
小明A+B (C语言代码)浏览:1257 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:952 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:859 |