黑马程序员技术交流社区
标题:
杨辉三角形怎么打? 自己的代码 欢迎来讨论
[打印本页]
作者:
qq6937523
时间:
2016-4-3 19:41
标题:
杨辉三角形怎么打? 自己的代码 欢迎来讨论
//
// 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应该会一目了然的
同学们帮忙看看有哪些过程是不合理的
或者有什么更简单的代码
欢迎向楼主提出!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2