花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深。时间复杂度具体没有细看,应该不会太大。
ok,先看程序。
ok,先看程序。
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>//包含的头文件不解释
typedef bool int //因为标准c里边没有bool类型才这么做
#define false 0
#define true 1
//定义几个全局变量,无奈之举
int *c, //将整个行列式的值存到c指向的空间里
n = 0,//记录当前的行列式计算进行了多少步
a, //方便传递行列式的阶数
sum = 0; //记录每一步行列式计算所累加的结果
int aq(int a) //计算阶乘的函数,就不多解释了
{
int s = 1;
for (int i = 1; i <= a; i ++)
s *= i;
return s