毅637
2021-07-12 02:46
采纳率: 100%
浏览 21

c语言杨辉三角和素数问题。

1.杨辉三角是把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。杨辉三角的每一项数据正好是组合(即n!/m!/(n-m)!)的值,其中n是行数(从0行开始);m是列数(从0列开始)。请使用上述算法得到杨辉三角形每一个位置的值并按下图打印。要求用函数fac计算一个正整数的阶乘(用递归函数来实现),通过主函数调用fac完成计算。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
2.素数又称为质数,它是一个大于1的自然数,除了1和它自身外,不能被其它自然数整除,可以应用于密码学、汽车变速箱齿轮的设计等方面。编写一个子函数prime判定正整数n是否为素数,通过主函数调用prime函数,按每行十个输出2到100之间所有素数。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 已采纳

    你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    1.杨辉三角

    #include <stdio.h>
    
    int fac(int x)
    {
        if (x<=1)
            return 1;
        return x * fac(x-1);
    }
    int main()
    {
        int n,m;
        for (n = 0; n <5 ; n++)
        {
            for (m = 0; m <= n; m++)
            {
                int s = fac(n) / fac(m) / fac(n-m);
                printf("%d ", s);
            }
            printf("\n");
    
        }
        return 0;
    }
    
    

    img


    2.素数

    #include <stdio.h>
    
    int prime(int n)
    {
        int i;
        if(n<=1)
            return 0;
        for(i=2;i*i<=n;i++)
            if(n%i==0)
                return 0;
        return 1;
    }
    
    int main()
    {
        int i,j=0;
        for( i=2; i<=100; i++ ) {
            if(prime(i)){
                printf("%2d%c", i,++j%10==0?'\n':' ');
            }
        }
        return 0;
    }
    

    img

    打赏 评论

相关推荐 更多相似问题