1. 怎样用c语言来编写杨辉三角形的递归程序
方法一:用二维数组来编写。
方法二:用自定义函数来编写。
2. 求助用c语言来编写杨辉三角行的递归程序
#include <stdio.h>
int c(int i,int j)
{if(j==0||j==i)return 1;
else return c(i-1,j)+c(i-1,j-1);
}
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
for(j=0;j<n-i;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%6d",c(i,j));
printf(" ");
}
getch();
return 0;
}
3. 用递归打印出杨辉三角形
不要用数组,那样浪费空间
#include<stdio.h>
//#define line 10
int c ( int a , int b )
{
int value = 0;
if ( b == 1 || b == a )//开头和结尾
{
value = 1;
}
else value = c ( a - 1 , b - 1)+c(a-1,b);//中间的值,递归
return value;
}
void main()
{
int n;
int j = 0;
printf("你要输入多少行?\n");
scanf("%d",&n);
while ( n > 13 ) // 确保输入范围,使以后输出,不会越界
{
scanf("%d",&n);
}
for ( int i = 0 ; i < n ; i++)
{
for ( j = 0 ; j < 2*n - 2*i ; j++)//控制空格
{
printf(" ");
}
for ( j = 0 ; j < i + 1 ; j++)//控制列输出
{
printf("%4d",c(i+1,j+1));
}
printf("\n");//分行
}
}
4. c语言:不使用数组编写杨辉三角形10行的递归程序
//输出杨辉三角
#include<stdio.h>
voidmain()
{
intyang(intx,inty);
inti,j,k;
for(i=1;i<=10;i++)//i控制行数
{
for(j=0;j<10-i;j++)
printf("");
for(k=1;k<=i;k++)//y表示这一行中第几个数
printf("%4d",yang(i,k));
printf(" ");
}
}
intyang(intx,inty)
{
intz;
if(y==1||y==x)z=1;
elsez=yang(x-1,y-1)+yang(x-1,y);
returnz;
}
不知道能不能满足lz要求。
5. 关于 杨辉三角 的C语言编程
这是个递归算法,我记得C语言书习题里有。
应该是 f(m-1, n-1)+f(m-1, n);
6. c语言递归法编写杨辉三角
#define N 11
main()
{int i,j,a[N][N];
for(i=1,i<N;i++)
{a[i][i]=1;
a[i][1]=1;
}
for(i=3;i<N;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<N;i++)
{for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
}
这样你只要把N的值修改一下,想输出到几位就到几位。
7. 求会C语言的,帮忙编写个杨辉三角形的程序!
//递归输出杨辉三角
#include<stdio.h>
intf(intm,intn)
{
if(n==0)return1;
if(m==n)return1;
returnf(m-1,n)+f(m-1,n-1);
}
intmain(intargc,char*argv[])
{
intlevel=5,i,j,k;
for(j=0;j<level;j++)
{
for(k=level;k>=j;k--)
printf("");
for(i=0;i<=j;i++)
printf("%d",f(j,i));
puts("");
}
return0;
}