关于运行效率的一个简单的问题
下面这两个代码都是实现n * (n-1) * (n -2)* ...*2*1
一种是递归,一种是普通方法,我感觉普通方法时间复杂度低,为什么面试官貌似不同意?(但是他没跟我说答案)
希望大家觉得那个时间复杂度低给出原因,谢谢~
Code 1:递归
#include<stdio.h>int fuck(int n){ int sum = 1; if(n == 1) { return 1; } sum = n * fuck(n - 1); return sum;}int main(){ int n; int sum = 0; scanf("%d",&n); sum = fuck(n); printf("%d",sum); return 0;}#include<stdio.h>int fuck(int n){ int sum = 1; while(n > 1) { sum = sum * n; n--; } return sum;}int main(){ int n; int sum; scanf("%d",&n); sum = fuck(n); printf("%d",sum); return 0;}