编写杨辉三角形除了用函数调用外,还可用其它方法吗
发布网友
发布时间:2023-10-23 10:10
我来回答
共4个回答
热心网友
时间:2024-11-16 04:32
可以,只用数组,把规律观察出来就行了
热心网友
时间:2024-11-16 04:32
/*杨辉三角*/
#include "stdio.h"
#include "conio.h"
main()
{
int i,j,n,a[100][100];
printf("请输入总的行数:\n n=");
scanf("%d",&n);
printf("\n");
for(j=1;j<2*n;j++)
a[1][j]=0;
a[1][n]=1;
for(i=2;i<=n;i++)
{
for(j=1;j<=n+i+2;j++)
{
if((j<n-i+1)||(j>n+i-1))
a[i][j]=0;
if((j==n-i+1)||(j==n+i-1))
a[i][j]=1;
else if((j>n-i+1)&&(j<n+i-1))
{
if((a[i-1][j-1]>0)&&(a[i-1][j+1]>0))
a[i][j]=a[i-1][j-1]+a[i-1][j+1];
if((a[i-1][j-1]==0)&&(a[i-1][j+1]==0))
{
a[i][j]=0;
}
}
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n+i-1;j++)
{
if(a[i][j]==0)
{
a[i][j]=' ';
printf("%3c",a[i][j]);
}
else
printf("%3d",a[i][j]);
if(j==(n+i-1))
printf("\n ");
}
}
return 0;
getch();
}
热心网友
时间:2024-11-16 04:33
#include<iostream.h>
#include <iomanip.h>
void TwoArrays(int n);
void main(){
int n;
cout<<"input the row of yanghui's Triangle:";
cin>>n;
TwoArrays(n);
}
//用二维数组解决杨辉三角的问题
//双重循环
void TwoArrays(int n){
int num[100][101];
for(int i=1;i<=n;i++){
for(int j=0;j<=i;j++){
if(j==0||j==i){
num[i][j]=1;
}
else{
num[i][j]=num[i-1][j-1]+num[i-1][j];
}
}
}
for(int k=1;k<=n;k++){
for(int m=0;m<=k;m++){
cout<<num[k][m]<<setw(5);
}
cout<<endl;
}
}
热心网友
时间:2024-11-16 04:34
可以用递归