phk7264264524 发表于 2020-2-17 15:42:16

c 与 python 之间的区别

刚刚学了 python的递归,用python的递归求斐波那契数列第40项(我的电脑)需要30s,但我又用了c做了一个递归,却只要1s,这是因为python是解释性语言的原因吗?

qiuyouzhi 发表于 2020-2-17 15:47:39

应该是C语言是编译性语言

一个账号 发表于 2020-2-17 15:48:07

本帖最后由 一个账号 于 2020-2-17 16:03 编辑

你吧源代码发上来

dlnb526 发表于 2020-2-17 15:48:41

本帖最后由 dlnb526 于 2020-2-17 15:49 编辑

万物始C~{:10_297:}
Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的~肯定是比C慢,然是容易编写和理解
不过也只是比C,C++慢,比起其他一些语言编写和运行都快很多了

phk7264264524 发表于 2020-2-17 16:01:27

一个账号 发表于 2020-2-17 15:48
不可能,你吧源代码发上来

def asd(x):
    if x ==1 or x==2:
      return 1
    else:
      return asd(x-1)+asd(x-2)

t = int(input())
print(asd(t))

phk7264264524 发表于 2020-2-17 16:02:06

一个账号 发表于 2020-2-17 15:48
不可能,你吧源代码发上来

#include <stdio.h>
int asd(int x);
int main(){
        int p;
        scanf("%d",&p);
        printf("%d",asd(p));
}
int asd(x){
        if (x == 1 || x == 2){
                return 1;
        }
        else {
                return asd(x-1) + asd(x - 2);
        }
}

一个账号 发表于 2020-2-17 16:10:16

本帖最后由 一个账号 于 2020-2-17 16:13 编辑

phk7264264524 发表于 2020-2-17 16:01


Python 很快啊:

num = int(input("请输入一个数字:"))

count = 1
a,b = 0,1

while count < num:
    a,b=b,a+b
    count += 1

print(b)

phk7264264524 发表于 2020-2-17 16:20:23

一个账号 发表于 2020-2-17 16:10
Python 很快啊:

嗷嗷,这个是迭代嘛,我想问的是递归/滑稽

一个账号 发表于 2020-2-17 16:22:16

phk7264264524 发表于 2020-2-17 16:20
嗷嗷,这个是迭代嘛,我想问的是递归/滑稽

Python 递归真的是很慢很慢,建议不要用递归

phk7264264524 发表于 2020-2-17 18:49:44

一个账号 发表于 2020-2-17 16:22
Python 递归真的是很慢很慢,建议不要用递归

嗯嗯,谢谢!
页: [1]
查看完整版本: c 与 python 之间的区别