计算n * n棋盘中的矩形

时间:2019-06-21 05:36:40

标签: c++

任务:计算总数 我使用了count rectangles

即((n + 1)c2)^ 2

逻辑似乎是正确的,因为它通过了所有小的测试用例 如果要在结果计算过程中将其截断,那我该如何避免

但失败

输入: 9384

其正确的输出是: 1938754650726740

您的代码的输出为: 1939030144736400

#include<iostream>
using namespace std;
#define int unsigned long long 
int32_t main() {
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        n=n+1;
        int t = ((n*(n-1))>>1);
        t=t*t;
        cout<<t<<endl;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您的结果与解决方案之间的差等于平方数:

n(n+1)(2n+1)/6

您的结果对应于矩形的数量,包括正方形。

我猜应该是不是正方形的矩形的数量。

此外,绝对避免

#define int unsigned long long 

我没有时间搜索并列出所有不这样做的原因。一个对我来说足够了:代码变得不可读。