乘法表问题
2015-10-21 09:26
295 查看
#include <iostream> using namespace std; int main(){ int n; char str[] = "bbbba"; n = strlen(str); int ***m = new int** ;//创建三维数组 for (int i = 0; i < n; i++){ m[i] = new int* ; for (int j = 0; j < n; j++){ m[i][j] = new int[3](); } } //矩阵初始化 for (int i = 0; i < n; i++){ if (str[i] == 'a'){ m[i][i][0] = 1; } else if (str[i] == 'b'){ m[i][i][1] = 1; } else if (str[i] == 'c'){ m[i][i][2] = 1; } } //矩阵处理 for (int r = 1; r < n; r++){ for (int i = 0; i < n - r ; i++){ int j = i + r ; for (int k = i; k < j; k++){ m[i][j][0] += m[i][k][0] * m[k + 1][j][2] + m[i][k][1] * m[k + 1][j][2] + m[i][k][2] * m[k + 1][j][0]; } for (int k = i; k < j; k++){ m[i][j][1] += m[i][k][0] * m[k + 1][j][0] + m[i][k][0] * m[k + 1][j][1] + m[i][k][1] * m[k + 1][j][1]; } for (int k = i; k < j; k++){ m[i][j][2] += m[i][k][1] * m[k + 1][j][0] + m[i][k][2] * m[k + 1][j][1] + m[i][k][2] * m[k + 1][j][2]; } } } //输出矩阵 for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++){ for (int k = 0; k < 3; k++){ cout<<m[i][j][k]<<" "; } cout << " "; } cout << endl; } cout << endl; cout <<"加括号的方式有:"<< m[0][n-1][0]<<"种"<<endl; return 0; }
相关文章推荐
- 图片加载开源框架知识汇总;
- BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the Applic
- SVN冲突解决方法
- 人生智慧:这9种人最有富豪潜质
- AutoComplete的extraParams动态传递参数
- [国嵌笔记][026][ARM伪指令]
- SVN权限控制
- Amoeba-mysql主从+读写分离实战+测试
- 国外设计师眼中的原型工具Mockplus
- linux0.99网络模块-传输层(TCP接收)
- hello-jni Android.mk文件简析
- FMDB和CoreData 怎么解决缓存池满的问题 CAAnimation的层级结构 UIButton和UITableView层级结构图 设置scroll view的contensize能在Viewdidload里设置么
- 干货 连接
- 学习资料汇总(会持续更新)
- Codeforces#302-A. Set of Strings-水题
- /etc/profile的简单注释
- 通过Erwin的反向工程导入实体 之二(自动为物理模型命英文名)
- 酶设计软件rosetta安装
- Uva 1587 - Box ( 思维 )
- leetcode -Two Sum