看了别人的方法再看自己写的方法...真是觉得好傻逼

啥都不说了...继续努力刷题吧


连续错了几次都是因为输出格式的问题,真是很气!

以下是我的方法,复杂化了...搞了两个循环

sum和a[n]都是long long类型,最后输出格式符是%lld(我就是错在这里)!

#include <stdio.h>

//最好不要用递归
/*
long long jiecheng(int n)
{
    if (n == 1)
        return 1;
    else
        return n * jiecheng(n - 1);
}
*/

int main()
{
    int n;
    scanf("%d", &n);
    
    //当n不超过20时才计算
    if (n > 0 && n <= 20)
    {
        long long sum = 0; //总和
        long long an[n]; //定义一个数组存放每一项

        int i, j;
        for (i = 1; i <= n; i++)
        {
            //先计算每一项的值
            an[i] = 1; 
            for (j = 1; j <= i; j++)
            {
                an[i] = an[i] * j;
            }
            //求和
            sum += an[i];
        }
        printf("%lld\n", sum);
    }

    return 0;
}

以下是看到的其他同学的办法,比我的清楚多了!!

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);

    if (n > 0 && n <= 20)
    {
        long long sum = 0;
        long long an = 1;
        
        int i;
        for (i = 1; i <= n; i++)
        {
            an *= i;
            sum += an;
        }
        printf("%lld\n",sum);
    }

    return 0;
}


点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论