- //
- // main.c
- // 25杨辉三角形
- //
- // Created by 吴文建 on 16/4/3.
- // Copyright © 2016年 Ari. All rights reserved.
- // 编程打杨辉三角形
- //**********1
- //********1 1
- // 1 2 1
- // 1 3 3 1
- // 1 4 6 4 1
- //1 5 10 10 5 1
- /* *号为了方便数空格数
- //空格数(count -1) * 2 - (i-1)*2
- 分析C(n+1,i)=C(n,i)+C(n,i-1);
-
- 第一行
- c00=1
- 第二行
- c10 =1 c11=1
- 第三行
- c20=1 c21=2 c22=1
- 第四行
- c30 =1 c31=3 c32=3 c33=1
- 定义一个函数
-
- c(m,n)=m!/n!
-
- 阶乘函数
-
- */
- #include <stdio.h>
- long ZuHe(long m, long n);
- long JieCheng(long n);
- int main()
- {
- long count = 0;
- printf("要输出几行杨辉三角形?:\n");
- scanf("%ld",&count);
- for (long i = 0; i<count; i++)
- {
- for (long j = 0; j < i+1;j++)
- {
- //空格数(count -1) * 2 - (i-1)*2
- if (j == 0)
- {
- for (long k = (count -1l) * 2l - (i-1l)*2l; k>0; k--)
- {
- printf(" ");
- }
- }
- /**
- * 输出结果
- */
- printf("%4ld",ZuHe(i, j));
- }
- printf("\n");
- }
-
-
- return 0;
- }
- /**
- * 组合的计算
- *
- * @param m 总数
- * @param n 从总数中取出的数
- *
- * @return 一共有多少种取法
- */
- long ZuHe(long m, long n)
- {
- if (m ==0l || n == 0l)
- {
- return 1l;
- }
-
- return (JieCheng(m)/JieCheng(n))/JieCheng((m-n));
- }
- /**
- * 阶乘的计算
- *
- * @param n 1-n
- *
- * @return 1-n阶乘的结果
- */
- long JieCheng(long n)
- {
- if (n==1l || n == 0)
- return 1l;
- return (JieCheng(n-1l) * n);
- }
复制代码 不知道怎么在网页上编辑
代码拷到xcode应该会一目了然的
同学们帮忙看看有哪些过程是不合理的
或者有什么更简单的代码
欢迎向楼主提出!!
|
|