繁体   English   中英

计算 n*n 棋盘中的矩形

[英]count rectangles in n*n chessboard

任务:计算总数我使用了这里给出的方法计数矩形

即 ((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;
}

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

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

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

我想预期的是不是正方形的矩形的数量。

此外,绝对避免

#define int unsigned long long 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM