我需要弄清楚如何在Python中编写for循环,返回NOT打印给定输入的奇数整数之和。我不能使用sum函数或列表。到目前为止我只有这个:
def sumofoddints (n):
n >= 1
total = 0
for num in range (1, n):
if num % 2 == 1:
total += n
return total
这不能给我正确的金额,所以我不知道如何解决它。
答案 0 :(得分:4)
使用数学有一种更简单的方法。
修改强> 对不起这是我的错。这是更正后的公式
def sumOdd(n):
return ((n+1)/2)**2
n = 1 => 1 = 1
n = 3 => 1 + 3 = 2 ** 2 = 4
n = 5 => 1 + 3 + 5 = 3 ** 2 = 9
n = 7 => 1 + 3 + 5 + 7 = 4 ** 2 = 16
答案 1 :(得分:3)
应该是total += num
,您只是添加了错误的变量。
答案 2 :(得分:0)
Python让这非常简单
FILE *pFile;
pFile=fopen("client.txt","w");//create and open file in write mode
范围(1,n,2)从1开始并按两次计数直到达到n (范围不包括最后一位,例如范围(0,2)是0,1而不是0,1,2 所以我们在最后添加n)
sum(list)函数返回列表中所有项目的总和。
编辑:它似乎不适用于整数,所以我加了-1,如果它是偶数。答案 3 :(得分:0)
只需将total += n
更改为total += num
因为num
是变化的那个,而不是n
。
必须是这样的:
def sumofoddints (n):
n >= 1
total = 0
for num in range (1, n):
if num % 2 == 1:
total += num
return total
答案 4 :(得分:0)
它只是 n**2。
阅读此处:https://www.quora.com/What-is-the-formula-for-the-sum-of-n-odd-numbers
def sumofoddints (n):
return n**2