当前位置: 首页 > wzjs >正文

公众号同步到dede网站wordpress在线安装地址

公众号同步到dede网站,wordpress在线安装地址,可信的网站建设,天津建设公司网站一.杨辉三角的数学原理 杨辉三角的定义&#xff1a;二项式系数在三角形中的几何排列 二.基础二维数组法 #include <stdio.h> #define N 10void printPascalTriangle(int n) {int triangle[N][N];// 初始化第一列和对角线为1for (int i 0; i < n; i) {triangle[i][0]…

一.杨辉三角的数学原理

  • 杨辉三角的定义:二项式系数在三角形中的几何排列

二.基础二维数组法


#include <stdio.h>
#define N 10void printPascalTriangle(int n) {int triangle[N][N];// 初始化第一列和对角线为1for (int i = 0; i < n; i++) {triangle[i][0] = 1;triangle[i][i] = 1;}// 计算中间元素for (int i = 2; i < n; i++) {for (int j = 1; j < i; j++) {triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];}}// 打印三角形for (int i = 0; i < n; i++) {// 打印前导空格for (int k = 0; k < n - i - 1; k++) {printf(" ");}for (int j = 0; j <= i; j++) {printf("%d ", triangle[i][j]);}printf("\n");}
}int main() {printPascalTriangle(10);return 0;
}​
  • 使用二维数组存储每个元素

  • 第一列和对角线元素都为1

  • 其他元素等于上一行同列和前一列元素之和

  • 简单直观,但空间复杂度为O(n²)

三.优化空间的一维数组法 

#include <stdio.h>
#define N 10void printPascalTriangle(int n) {int row[N];for (int i = 0; i < n; i++) {// 从后往前计算避免覆盖row[i] = 1;for (int j = i - 1; j > 0; j--) {row[j] = row[j] + row[j-1];}// 打印前导空格for (int k = 0; k < n - i - 1; k++) {printf(" ");}// 打印当前行for (int j = 0; j <= i; j++) {printf("%d ", row[j]);}printf("\n");}
}int main() {printPascalTriangle(10);return 0;
}
  • 只使用一维数组,空间复杂度降为O(n)

  • 从后往前计算避免覆盖前一次的结果

  • 更高效的内存使用,但逻辑稍复杂

四.递归实现

#include <stdio.h>int pascalValue(int row, int col) {if (col == 0 || col == row) {return 1;}return pascalValue(row - 1, col - 1) + pascalValue(row - 1, col);
}void printPascalTriangle(int n) {for (int i = 0; i < n; i++) {// 打印前导空格for (int k = 0; k < n - i - 1; k++) {printf(" ");}for (int j = 0; j <= i; j++) {printf("%d ", pascalValue(i, j));}printf("\n");}
}int main() {printPascalTriangle(10);return 0;
}
  • 使用递归计算每个位置的值

  • 代码简洁,符合数学定义

  • 效率较低,有大量重复计算

  • 时间复杂度为O(2ⁿ)

五.组合数公式法

#include <stdio.h>int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);
}int combination(int n, int k) {return factorial(n) / (factorial(k) * factorial(n - k));
}void printPascalTriangle(int n) {for (int i = 0; i < n; i++) {// 打印前导空格for (int k = 0; k < n - i - 1; k++) {printf(" ");}for (int j = 0; j <= i; j++) {printf("%d ", combination(i, j));}printf("\n");}
}int main() {printPascalTriangle(10);return 0;
}
  • 利用组合数公式C(n,k) = n!/(k!(n-k)!)

  • 数学意义明确

  • 计算阶乘容易溢出,效率不高

  • 适合理论理解,实际应用有限

 六.动态规划优化

#include <stdio.h>
#define N 10void printPascalTriangle(int n) {int triangle[N][N];for (int i = 0; i < n; i++) {// 打印前导空格for (int k = 0; k < n - i - 1; k++) {printf(" ");}for (int j = 0; j <= i; j++) {// 第一列和对角线为1if (j == 0 || j == i) {triangle[i][j] = 1;} else {triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];}printf("%d ", triangle[i][j]);}printf("\n");}
}int main() {printPascalTriangle(10);return 0;
}
  • 结合了方法一和方法二的优点

  • 边计算边打印,减少内存访问

  • 代码结构更紧凑

  • 仍然使用二维数组,但计算和输出合并

七.使用指针的方法 

#include <stdio.h>
#include <stdlib.h>void printPascalTriangle(int n) {int **triangle = (int **)malloc(n * sizeof(int *));for (int i = 0; i < n; i++) {triangle[i] = (int *)malloc((i + 1) * sizeof(int));triangle[i][0] = 1;triangle[i][i] = 1;for (int j = 1; j < i; j++) {triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];}// 打印前导空格for (int k = 0; k < n - i - 1; k++) {printf(" ");}for (int j = 0; j <= i; j++) {printf("%d ", triangle[i][j]);}printf("\n");}// 释放内存for (int i = 0; i < n; i++) {free(triangle[i]);}free(triangle);
}int main() {printPascalTriangle(10);return 0;
}
  • 使用指针动态分配内存

  • 可以处理更大的n值(受内存限制)

  • 需要手动管理内存

  • 更接近实际工程应用


文章转载自:

http://DsL50jIo.sfqtf.cn
http://M64vbp8m.sfqtf.cn
http://FtQZMfBM.sfqtf.cn
http://4GDx1I4X.sfqtf.cn
http://soQ8Ucdq.sfqtf.cn
http://dd2yZy57.sfqtf.cn
http://S6a3u91c.sfqtf.cn
http://eH4ae5p4.sfqtf.cn
http://aGGqYLJe.sfqtf.cn
http://IvJXt1JX.sfqtf.cn
http://KktQYCfT.sfqtf.cn
http://s1TBqyhj.sfqtf.cn
http://uX1VCT4F.sfqtf.cn
http://iNs8GnHV.sfqtf.cn
http://umUXvm4Y.sfqtf.cn
http://FwUx9qFG.sfqtf.cn
http://hIiZuP15.sfqtf.cn
http://mbj0SfRD.sfqtf.cn
http://uITRpHG0.sfqtf.cn
http://jdPjomVB.sfqtf.cn
http://6SIt7oJf.sfqtf.cn
http://AIp0wyDH.sfqtf.cn
http://xNsWDeC4.sfqtf.cn
http://Gif96veH.sfqtf.cn
http://CnFx3BQg.sfqtf.cn
http://RJEpErVC.sfqtf.cn
http://cd2EXMVF.sfqtf.cn
http://llWF4lqU.sfqtf.cn
http://FIjGQV8E.sfqtf.cn
http://EAb6Ajc0.sfqtf.cn
http://www.dtcms.com/wzjs/713095.html

相关文章:

  • 制作门户网站教育类企业网站
  • 专业的网站设计制作关方网站买微信
  • 建设企业网站专业服务注册网站建设
  • 没有注册公司怎么做网站汉沽网站建设制作
  • 烟台专业做网站下载京东购物商城app
  • 网络营销从网站建设开始帝国cms的手机网站
  • python快速搭建网站宁波做网站优化价格
  • 系统网站哪个好健康服务管理中心
  • 济宁亿峰科技做网站一年多少费用西宁建设厅培训中心网站
  • 功能型网站建设时间网站建立不安全怎么设置通过
  • 做网站需要会什么编程大连仟亿科技网站建设公司 概况
  • 韩国网站设计风格如何使用wordpress主题
  • 简述建设企业网站可信度的具体策略做导购网站
  • 网站开发知识体系衡阳专业seo公司
  • 昆明微网站建设做网站以前出名的公司
  • 课程网站建设中容易出现的问题模板的网站都有哪些
  • 怎么做网站才能被收购建设部网站关于公租房
  • 织梦网站安装网站建设的相关政策
  • 自己做网站赚钱中国企业网是什么级别
  • 找个公司做网站需要注意什么条件现在哪个电商平台比较好做
  • 乐都企业网站建设百度培训
  • 做网批有专门的网站吗安徽省建设厅网站职称
  • 深圳国税局深圳做网站公司上海网络维护公司20强
  • 网站更换服务器 备案学做网站论坛熊掌
  • 我做网站了圆通天堂 在线地址8
  • 唐山市住房和城乡建设局官方网站网站建设软硬件要求
  • dw做企业网站wordpress刷新缓存
  • 各大游戏网站做农业的公司管理网站
  • 网站建设技术实现企查查免费查询入口
  • 网站建设程序开发过程中学生在哪里学编程最好