用递归算法求杨辉三角

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:用递归算法求杨辉三角

代码:

#include

int fun(int i,int j)

{

if(j==1||j==i)

return 1;

else

return fun(i-1,j-1)+fun(i-1,j); }

int main()

{

int i,j,n;

printf("input n:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=i;j++)

{

printf("%5d",fun(i,j));

}

printf("\n");

}

getch();

}

运行结果:

实验二:趣味矩阵

(1)编写算法:打印具有下面规律的图形。

1

5 2

8 6 3

10 9 7 4

代码:

#include

main( )

{

int i,j,a[100][100],n,k;

scanf("%d",&n);

k=1;

for(i=1;i<=n;i=i+1)

for( j=1;j<=n+1-i;j=j+1) {

a[i-1+j][j]=k;

k=k+1;

}

for(i=1;i<=n;i=i+1) {

printf("\n");

for( j=1;j<=i;j=j+1) printf("%5d",a[i][j]); }

getch();

}

(2)螺旋阵:

代码:

#include

main()

{

int i,j,n,k,a[100][100]; printf("please input n:"); scanf("%d",&n);

k=1;

for(i=1;i<=n/2;i++)

{

for(j=i;j<=n-1;j++)

{

a[j][i]=k;

k++;

}

for(j=i;j<=n-i;j++) {

a[n+1-i][j]=k;

k++;

}

for(j=n-i+1;j>=i+1;j--) {

a[j][n+1-i]=k;

k++;

}

for(j=n-i+1;j>=i+1;j--) {

a[i][j]=k;

k++;

}

}

if(n%2==1)

{

i=(n+1)/2;

a[i][i]=n*n;

}

for(i=1;i<=n;i++)

{

printf("\n");

for(j=1;j<=n;j++)

printf("%5d",a[i][j]);

}

getch();

}

结果:

实验三:快速排序代码:

#include

Swap(int a,int b)

{

int t;

t=a;

a=b;

b=t;

}

int Partition (int a[], int p, int r) {

int i = p+1, j = r;

int x=a[p];

{

while (a[i]

{

i++;

}

while(a[j] >x)

{

j--;

}

while(i > j)

break;

Swap(a[i], a[j]);

}

a[p] = a[j];

a[j] = x;

return j;

}

void QuickSort (int a[], int p, int r) {

if (p

{

int q=Partition(a,p,r);

QuickSort (a,p,q-1);

QuickSort (a,q+1,r);

}

}

int main()

{

int b[100],p=-1,n,r;

int i;

scanf("%d",&n);

r=n;

for(i=0;i

scanf("%d",&b[i]);

QuickSort(b,p,r);

for(i=0;i

printf("%d",b[i]); getch();

}

相关文档
最新文档