不平凡、楠 发表于 2020-3-26 19:23:02

输入奇数n,计算Sn = 1 – 3 + 5 – 7 + 9 – 11 + …n。

i=int(input("请输入一个奇数:"))
sum=0
if i%2!=0:
    for n in range(1,i+2,2):
      sum+=n
else:
    print("请输入奇数")
print(sum)
奇数位正,偶数位负不会写

heidern0612 发表于 2020-3-26 19:41:23

本帖最后由 heidern0612 于 2020-3-26 19:48 编辑

result = 0
temp=int(input("请输入需要计算的个数:"))
for i in range (1,temp+1):
    if i % 2 == 0:       #为偶数取负值
      i = -i
    else:
      i=i                   #为奇数取正值
    result += i          #result累加i的迭代值
   
print(result)

不平凡、楠 发表于 2020-3-26 19:46:27

heidern0612 发表于 2020-3-26 19:41


是取奇数相加,把奇数里的数第一位正第二位为负

Unicorn# 发表于 2020-3-26 19:54:38

本帖最后由 Unicorn# 于 2020-3-26 19:56 编辑

sum((-1)**(i+1)*(x*i-1)for i in range(1, n+1, 2))

永恒的蓝色梦想 发表于 2020-3-26 20:09:15

本帖最后由 永恒的蓝色梦想 于 2020-3-26 20:17 编辑

def func(n):
        if n&1:
                if n&3==1:
                        return (n^3)>>1
                else:
                        return ~n>>1
        else:
                raise ValueError("请输入奇数!")

不平凡、楠 发表于 2020-3-26 20:10:08

Unicorn# 发表于 2020-3-26 19:54


Traceback (most recent call last):
File "C:/Users/dell/Desktop/1.py", line 4, in <module>
    sum((-1)**(i+1)*(x*(i-1))for i in range(1, i+1, 2))
TypeError: 'int' object is not callable

永恒的蓝色梦想 发表于 2020-3-26 20:17:43

不平凡、楠 发表于 2020-3-26 20:10
Traceback (most recent call last):
File "C:/Users/dell/Desktop/1.py", line 4, in
    sum((-1) ...

试试我的{:10_297:}

不平凡、楠 发表于 2020-3-26 20:23:21

永恒的蓝色梦想 发表于 2020-3-26 20:17
试试我的

我看不懂{:5_96:}

heidern0612 发表于 2020-3-26 20:24:38

本帖最后由 heidern0612 于 2020-3-26 20:30 编辑

不平凡、楠 发表于 2020-3-26 20:23
我看不懂
result = 0
temp = int(input("请输入要计算的奇数个数:"))

for i in range(0,temp):
    if (i % 2 == 0):
      result += 2 * i +1
    else:
      result -= 2 * i+ 1
print(result)



算法说明:因为相邻两个数相加和都是负2,所以结果简单易见。

十月故里 发表于 2020-3-26 20:25:49

i=int(input("请输入一个奇数:"))
sum=0
k=0
if i%2!=0:
    for n in range(1,i+1):
      if n%2!=0:
            sum+=n*(-1)**k
            k+=1
else:
    print("请输入奇数")
print(sum)

永恒的蓝色梦想 发表于 2020-3-26 20:32:39

不平凡、楠 发表于 2020-3-26 20:23
我看不懂

结果对不就好了……{:10_266:}

这个代码大概等于这样def func(n):
      if n%2!=0:
                if n%4==1:
                        return (1+n)//2
                else:
                        return (1-n)//2
      else:
                raise ValueError("请输入奇数!")

sYMMetrY 发表于 2020-3-26 20:34:59

number = int(input('请输入一个正整数:'))

def f(number):
    if (number - 1)%4 == 0:
      return ((number - 1)//4)*2 + 1



不平凡、楠 发表于 2020-3-26 20:38:04

永恒的蓝色梦想 发表于 2020-3-26 20:32
结果对不就好了……

这个代码大概等于这样

谢谢兄弟

十月故里 发表于 2020-3-26 21:07:02

十月故里 发表于 2020-3-26 20:25


突然发现自己写多了,其实就插个控制哈,这样基本不用动主体
i=int(input("请输入一个奇数:"))
sum=0
k=0
if i%2!=0:
    for n in range(1,i+2,2):
            sum+=n*(-1)**k
            k+=1
else:
    print("请输入奇数")
print(sum)
页: [1]
查看完整版本: 输入奇数n,计算Sn = 1 – 3 + 5 – 7 + 9 – 11 + …n。