问题标题: 酷町堂:1036 阶乘的平方和

1
0
已解决
朱智霖
朱智霖
新手守护
新手守护

南来的北往的,进山的跑场的,探亲的走访的都来看看,帮忙看看哪错了,QAQ

这个是我第一次的程序

#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
    int n,i,s=0,x=1;
    cin>>n;
    for (i=1;i<=n;i++)
    {
        x*=i;
        s+=x*x;
    }
    cout<<s;
    return 0;
}

这是我的第二个

#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
    int n,i,s=0,x,j;
    cin>>n;
    for (i=1;i<=n;i++)
    {
        x=1;
        for (j=1;j<=i;j++) x*=j;
        s+=x*x;
    }
    cout<<s;
    return 0;
}

选一个找到错误就行了(意思:只需要找一个程序的错误就有采纳)

 

朱智霖在2018-02-27 21:18:37追加了内容

@陆麟瑞 @蒋智航 @徐云皓 


1
已采纳
邵逸儒
邵逸儒
中级天翼
中级天翼

第一个程序把,改为

1
王星河
王星河
资深光能
资深光能

把 x 和 s 都改成 long long

1
1
1
陆麟瑞
陆麟瑞
资深天翼
资深天翼

第一个程序的

int n,i,s=0,x=1;

 

改为

 

long long n,i,s=0,x=1;
1
张舒斌
张舒斌
中级光能
中级光能

孩砸,你的错误……我无语了

如果是20的阶乘平方和,那不是太太太太太太大了吧;

所以,int的取值范围远远是不够的,应该是

long long int

这下你试试

1
栾峻岩
栾峻岩
初级天翼
初级天翼

第一个程序你的思路是对的,只要把x,和s为long long 型就行了。

1
阮俊雄
阮俊雄
新手光能
新手光能

数据范围定义小了要用long long

0
0
0
我要回答