行列式求值
来源:互联网 发布:埃及神话 知乎 编辑:程序博客网 时间:2024/04/30 10:47
- Description
求 N 阶方阵对应的行列式值。
- Input
输入数据包含多组测试案例。每组测试案例由N(0
#include<stdio.h>#define MAXN 11#define fabs(x) ((x)>0?(x):-(x))#define zero(x) (fabs(x)<1e-10)struct mat{// int n,m; int n; double data[MAXN][MAXN];};double det(const mat& a){ int i,j,k,sign=0; double b[MAXN][MAXN],ret=1,t;// if (a.n!=a.m)// return 0; for (i=0;i<a.n;i++) for (j=0;j<a.n;j++) b[i][j]=a.data[i][j]; for (i=0;i<a.n;i++){ if (zero(b[i][i])){ for (j=i+1;j<a.n;j++) if (!zero(b[j][i])) break; if (j==a.n) return 0; for (k=i;k<a.n;k++) t=b[i][k],b[i][k]=b[j][k],b[j][k]=t; sign++; } ret*=b[i][i]; for (k=i+1;k<a.n;k++) b[i][k]/=b[i][i]; for (j=i+1;j<a.n;j++) for (k=i+1;k<a.n;k++) b[j][k]-=b[j][i]*b[i][k]; } if (sign&1) ret=-ret; return ret;}int main(){ mat a; while(scanf("%d",&a.n)!=EOF) { for(int i=0;i<a.n;i++) for(int j=0;j<a.n;j++) scanf("%lf",&a.data[i][j]); double det1; det1=det(a); printf("%.2f\n",det1); } return 0;}
0 0
- 行列式求值
- 行列式求值
- 行列式求值
- 行列式求值
- 行列式求值
- 行列式求值
- 行列式求值
- Java之行列式求值
- 南邮 OJ 1035 行列式求值
- 矩阵求逆及行列式求值
- uva 684 - Integral Determinant(行列式求值)
- 用递归方法实现行列式求值
- 计算机语言递归原理及行列式递归求值
- 用递归方法实现行列式求值
- Hdu 4305 Lightning - 生成树计数 - 行列式求值
- C语言学习笔记(六)---行列式求值小程序
- 行列式
- 行列式
- 《C程序设计语言》学习笔记——练习2-3
- 内部排序——选择类排序——简单选择排序
- Netty学习笔记:2
- 练习:通过解析xml和java反射机制实现IoC
- JAVA UUID 生成
- 行列式求值
- Android多媒体:AudioTrack
- 模运算
- 简单记录下程序执行过程
- eclipse 快捷键
- 呼叫保持取消
- 线段树区间合并 hdu3308 LCIS
- struts2 -01
- 黑马程序员——Java 反射 (第十二篇)