求解答下面两个问题基础C语言

求解答下面两个问题C语言 有偿20速求感谢感谢
凑个字数发一下!?@/

img

第一题,循环求和,一部分表示分子——x的n次方,一部分分母表示为阶乘的形式(此处可以调用阶乘函数)
两者相除,循环sum求和。

#include<stdio.h>
#include<math.h>
 
double fact(int n)
{
    double sum1=1.0;
    for(; n>0; n--)
        sum1*=n;
    return sum1;
}
 
double mypow(double x,int n)
{
    double sum2=0.0;
    sum2=pow(x,n);
    return sum2;
}
 
int main()
{
    double x,sum=0.0;
    int n;
    scanf("%lf%d",&x,&n);
    for(int i=1; i<=n; i++)
    {
        sum+=pow(1,i+1)*(mypow(x,i)/fact(i));
    }
    printf("%.4lf\n",sum);
    return 0;
}

第二题,思路是类似的。

#include <stdio.h>
#include<stdlib.h>
 
int main()
{
    int i,j;
    int n;
    scanf("%d", &n);
    double sum = 0.0;
    for (i = 1; i <= n; i++)
    {
        long long a = 1;
        for (j = i; j < 2 * i; j++)
        {
          a *= j;
        }
        sum += 1.0 / a;
    }
    printf("%.2lf\n", sum);
    return 0;
}

希望对题主有所帮助!可以的话,帮忙点个采纳!

两个问题

#include<stdio.h>
#include<math.h>

int factorial(int n)
{
    if (n == 1)return n;
    else return n * factorial(n - 1);
}

float question_1(float x, int n)
{
    if (n == 1) return x;
    else return pow(x, n) / factorial(n) + question_1(x, n - 1);
}


float question_2(int n)
{
    if (n == 1) return n;
    else return 1.0 / (factorial(2 * n - 1) / factorial(n - 1)) + question_2(n - 1);
}

int main()
{
    printf("%f\n", question_1(1.0, 5));
    printf("%f", question_2(3));
    return 0;
}
#include <stdio.h>

int main()
{
    int n;
    double x;
    scanf("%lf%d", &x, &n);
    if (n <= 0)
    {
        printf("requires n > 0\n");
        return 1;
    }
    double s = 0.0;
    double f = 1.0;
    double g = 1.0;
    for (int i = 1; i <= n; i++)
    {
        g *= x;
        f *= i;
        s += g / f;
    }
    printf("%lf\n", s);
    return 0;
}
#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    if (n <= 0)
    {
        printf("requires n > 0\n");
        return 1;
    }
    double s = 0.0;
    for (int i = 1; i <= n; i++)
    {
        long long f = 1;
        for (int j = i; j < 2 * i; j++)
            f *= j;
        s += 1.0 / f;
    }
    printf("%lf\n", s);
    return 0;
}

//第一道问题
#include <stdio.h>
int fac(int n)//用来计算阶乘
{
    int sum=1;
    for (int i = 1;i <= n;i++)
    {
        sum *= i;
    }
    return sum;
}

int main()
{
    int n;
    double s = 0;
    double x;
    scanf_s("%lf%d", &x, &n);

        for (int i = 1;i <= n;i++)
        {
            s += x / fac(i);
            x *= x;
        }
        printf("%f", s);
            return 0;
}