shiyouroc 发表于 2022-1-27 18:37:31

python递归解决高斯1+2+3....+10

本帖最后由 shiyouroc 于 2022-1-27 21:54 编辑

{:5_99:} 上学的时候我们会学到高斯的1+2+3...100的问题。今天,我用python递归解决这个问题,顺便教会大家递归。看完的发回复。支持一下,淘个贴。

def f(x):
    if x > 0:
      return x+f(x-1)
    else:
      return 0
       
print(f(100))

{:5_91:}

shiyouroc 发表于 2022-1-27 18:38:43

求回复。{:5_105:}

人造人 发表于 2022-1-27 18:44:47

你是认真的吗?

$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 5
    if x<0:
      ^
SyntaxError: invalid character '<' (U+FF1C)
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 6
    return x+f(x-1)
            ^
SyntaxError: invalid character '(' (U+FF08)
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 6
    return x+f(x-1)
               ^
SyntaxError: invalid decimal literal
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 10
    print(f (100))
         ^
SyntaxError: invalid character '(' (U+FF08)
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 10
    print(f (100))
            ^
SyntaxError: invalid character '(' (U+FF08)
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 10
    print(f (100))
               ^
SyntaxError: invalid decimal literal
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
File "/tmp/./main.py", line 10
    print(f (100))
               ^
SyntaxError: invalid character ')' (U+FF09)
$ vim main.py
$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x<0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
0
$ ./main.py
0
$ ./main.py
0
$

shiyouroc 发表于 2022-1-27 18:45:47

人造人 发表于 2022-1-27 18:46:22

$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
       if x>0:
            return x+f(x-1)
       else:
            return 0

print(f (100))
$ ./main.py
5050
$

shiyouroc 发表于 2022-1-27 18:46:25

人造人 发表于 2022-1-27 18:44
你是认真的吗?

等一下

人造人 发表于 2022-1-27 18:48:28

$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def f(x):
    if x <= 0: return 0
    return x + f(x - 1)

print(f(100))
$ ./main.py
5050
$

shiyouroc 发表于 2022-1-27 19:08:25

def f(x):
    if x > 0:
      return x+f(x-1)
    else:
      return 0
       
print(f(100))

shiyouroc 发表于 2022-1-27 19:09:27

现在修复完成

傻眼貓咪 发表于 2022-1-27 22:18:07

感谢楼主分享,这题目好有趣,我想试试 C++ 语言的:
C++#include <iostream>

int main()
{
    auto f = [](int x) {return (1 + x) * (x / 2); };
    std::cout << f(100) << std::endl;
    return 0;
}

hornwong 发表于 2022-2-8 10:48:14

{:5_95:}

nihaohjc 发表于 2023-4-28 15:11:12

{:5_91:}
页: [1]
查看完整版本: python递归解决高斯1+2+3....+10