zhanjunlihai 2023-11-10 18:01 采纳率: 24.7%
浏览 6

杨辉三角c语言代码 为什么会有乘法,不是很懂

这个杨辉三角的代码 不是很懂 为什么会想到用乘法?有人能解释一下 每句话的代码吗?特别是乘法这里。


```c

#include<stdio.h>
int main()
{int n,i,x,m,y,p; 
 printf("请输入要生成的杨辉三角的行数:");
 scanf("%d",&n);
 for(i=0;i<=(n-1);i++)
     {x=1,y=i,p=1; 
      printf("1\t");
      for(m=1;m<=i;m++)
        {x=x*y; y=y-1; p=p*m;
         printf("%d\t",x/p);
        }
     printf("\n");
    }
return 0;} 


  • 写回答

2条回答 默认 最新

  • 小尘要自信 新星创作者: Java技术领域 2023-11-10 20:12
    关注

    在杨辉三角中,每个数是通过组合数的形式计算出来的,而组合数可以表示为 n!/((n-r)!*r!),其中 ! 表示阶乘。因此,在内层循环中,变量 x 和 y 分别用于计算 n! 和 (n-r)!,变量 p 则用于计算 r!,最终通过 x/y/p 计算出组合数的值并打印出来。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月10日