本文目錄一覽:
C語言 楊輝三角代碼(非數組)求解釋
#includestdio.h
#define N 15
void main()
{
int i,j,k;
long long b,c;//下面的乘法計算的時候如果N大了,會超過int的最大值,改為long long
for(i=0; iN; i++)
{
for(j=0; j=i; j++)
{
b=c=1;
if(j=1) //從此行開始,每一行都解釋一下
{
for(k=i-j+1; k=i; k++)
b*=k;
for(k=1; k=j; k++)
c*=k; //解釋到這裡結束
}
printf(“%-5d”,b/c);
}
printf(“\n”);
}
}
你讓注釋的地方,給你個圖你就明白在模擬什麼計算了。
c語言:不使用數組編寫楊輝三角形10行的遞歸程序
//輸出楊輝三角
# include stdio.h
void main()
{
int yang(int x, int y);
int i, 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(“\n”);
}
}
int yang(int x, int y)
{
int z;
if(y == 1 || y == x) z = 1;
else z = yang(x-1, y-1) + yang(x-1, y);
return z;
}
不知道能不能滿足lz要求。
c語言編程列印楊輝數字金字塔不用數組
#includestdio.h
#define N 10
void main()
{
unsigned int i,j,k;
unsigned int b,c;
for(i=0;iN;i++)
{
for(j=N;ji;j–)
printf(” “);
for(j=0;j=i;j++)
{
b=c=1;
if(j=1)
{
for(k=i-j+1;k=i;k++)
b*=k;
for(k=1;k=j;k++)
c*=k;
}
printf(“%4d”,b/c);
}
printf(“\n”);
}
}
在列印楊輝三角時通常用到楊輝三角的兩個性質。
第一個就是楊輝三角中除了最外層的數為1外,其餘的數都是它肩上兩個數之和。用數組輸出楊輝三角就用這個性質。
第二個性質是楊輝三角的第n行恰好是C(n,0)~C(n,n)。這裡的C表示組合。不用數組輸出楊輝三角就用這個性質。
哪裡不明白可以Hi我。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306397.html