C语言程序:求S=1(一次方)+2(二次方)+3(三次方).....加到n(n次方)问题求借

2024-12-03 18:18:42
推荐回答(4个)
回答(1):

#include 
int factorial(int n)
{
    int fac=n;
    int i;
    for(i=1;i        fac*=n;
    return fac;
}
int main()
{
    int n;
    printf("请输入n的值:");
    scanf("%d",&n);
    int i,s=0;
    for(i=1;i<=n;i++)
        s+=factorial(i);
    printf("1(一次方)+2(二次方)+3(三次方).....加到n(n次方)的和为:%d",s);
    return 0;
}

回答(2):

# include
int main(void)
{
    unsigned int n,i,j,temp;//i:底数 j:次方
    unsigned int s = 0;

    printf("输入n的值为:");
    scanf("%d",&n);

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

        for(j = 1; j< i; j++)
        {
            temp *= i;
        }

        s += temp;
    }
    printf("结果为:%d\n",s);

    return 0;
}

   1.我觉得可以用unsigned类型,因为n不可能为负数吧

  2.第一个for是实现1到n底数的遍历,第二个for是实现底数的幂的结果,具体来说就是把k这个数乘以k本身k-1次
  3.【名字短了会重名】的回答比较专业,我这个只是比较通俗的解释(因为我也是初学者XD)

回答(3):

#include 
#include
int main()
{
    int a,b,c,d,e;
    scanf("%d",&a);
    for(b=1;b<=a;b++)
    {
       for(e=1,c=1;c<=b;c++) 
       { 
            e*=b;
        }
         d+=e;  
    }
    printf("%d",d);
    system("pause");
    return 0;
}

试试哈,我这没编译环境没测试

回答(4):

这样。
#include
#include
#include
int main()
{
int a,b,c,d,e=0;
scanf("%d",&a);
for(b=1;b<=a;b++)
{
d=1;
for(c=0;c d*=b;
e+=d;
}
printf("%d",e);
return 0;
}

Have Fun