之前的版本使用了一个二维数组来存储贝尔三角形,这个版本则使用了一维数组来存储,技巧要高很多。

在组合数合里,贝尔数给出了集合划分的数目,以数学家埃里克·坦普尔·贝尔(Eric Temple Bell)命名,是组合数学中的一组整数数列。

有关贝尔三角形,这里重复介绍一下。

1.第一行第一项是1

2.对于n>1,第n行第一项等同第n-1行最后一项。

3.对于m,n>1,第n行第m项等于它左边和左上方的两个数之和。

相对于贝尔三角形,还有贝尔数列,它是各行连起来(第2行开始去掉最后一个元素),有关概念可以参考各种百科。

程序中使用了两个临时变量,用于在前一行的基础上计算下一行。程序如下:

#include <stdio.h>// 贝尔三角形程序
void belltriangle()
{int n, i, j, temp, temp2;scanf("%d", &n);int bell[n];bell[0]= 1;for(i=1; i<n; i++) {temp = bell[0];bell[0] = bell[i-1];for(j=1; j<=i; j++) {temp2 = bell[j];bell[j] = temp + bell[j-1];temp = temp2;}for(j=0; j<=i; j++)printf("%d ", bell[j]);printf("\n");}
}int main(void)
{belltriangle();return 0;
}

输入行数为7时,运行结果如下:

7
1 2
2 3 5
5 7 10 15
15 20 27 37 52
52 67 87 114 151 203
203 255 322 409 523 674 877

I00004 贝尔三角形(解法二)相关推荐

  1. I00003 贝尔三角形

    在组合数合里,贝尔数给出了集合划分的数目,以数学家埃里克·坦普尔·贝尔(Eric Temple Bell)命名,是组合数学中的一组整数数列. 贝尔三角形类似于杨辉三角,只是其中各个项的计算规则不同.其 ...

  2. 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全

    从LeetCode 679. 24 Game–C++ 解法–二十四点 到穷举24点所有可能性 此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解文章分类:LeetCode题 ...

  3. 隐形Euler方法的java程序_常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  4. HDU1106 排序(解法二)(废除!!!)

    本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...

  5. 【MPI编程】矩阵向量乘法--解法二(高性能计算)

    简述 有留心过的朋友可能会发现,其实我没写过解法一. 因为解法一就是大家最直观的感受的一种解法. 将矩阵按照行划分,之后,再每个线程都用整个向量跟这个块做内积.之后,传回来一个数值. 这里的方法二, ...

  6. 常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  7. c语言暴力求解法二维数组比较,【算法】搜索二维矩阵 暴力解法二分法 4种语言...

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1:输入:matrix = ...

  8. [选拔赛2 NOIP2018雅礼集训 Day3 u,v,w]玩个三角形(二维差分),玩个球(状压DP+map),玩个树(树上DP)

    文章目录 T1:玩个三角形 title solution code T2:玩个球 title solution code T3:玩个树 title solution code T1:玩个三角形 tit ...

  9. HDU1013 POJ1519 Digital Roots(解法二)

    该问题的最佳解法是利用数论的9余数定理来计算数根.一个数的数根等于该数的9的余数,若余数为0则结果为9. 问题链接:HDU1013 POJ1519 Digital Roots.入门练习题,用C语言编写 ...

最新文章

  1. vs配置编译c语言,为 VSCode 配置 C 语言编译环境
  2. Asp.net MVC 3 防止 Cross-Site Request Forgery (CSRF)原理及扩展 安全 注入
  3. 计算机视觉在生物力学和运动康复中的应用和研究
  4. Android---------------Activity的学习
  5. Oh-My-Zsh 操作 Git 的快捷键
  6. 【建议收藏】数学建模竞赛网站汇总
  7. 聊聊高并发(六)实现几种自旋锁
  8. Unlock SAP Data
  9. indexof java_java indexOf()简单字符查找实例
  10. python怎么创建函数_Python创建与调用函数
  11. 无线网络的基础及优化方案
  12. Rails测试《十》不能错过的杂七杂八
  13. jquery连续滚动
  14. 【python教程入门学习】机器学习常用术语
  15. flash android 5.0,Adobe Flash Player
  16. 手把手教你使用R语言做竞争风险模型并绘制列线图
  17. 滴滴入局同城货运,一场闪电战,还是持久战?
  18. Excel表Ctrl+v和Ctrl shift+v有什么区别_Excel表格操作技巧,超实用
  19. 为什么有人一星期能看3本书,你却一个月看不了1本
  20. 阿里云域名注册优惠口令和续费优惠口令(更新)

热门文章

  1. Redis for Windows
  2. Lua中实现类似C#的事件机制
  3. 关于用C#编写ActiveX控件3(转)
  4. matlab数据分类与识别,Matlab图像识别/检索系列(3)—10行代码完成caltech图象集分类和识别...
  5. Vertica系列: Vertica 数仓简单介绍
  6. centos7 安装node
  7. 技术文件服务器搭建,搭建文件服务器_mob604756e49326的技术博客_51CTO博客
  8. 用户界面设计参考 (ZT)
  9. matplotlib交互模式与pycharm单独Figure设置
  10. caffe(4):mnist实例---手写数字识别