洛谷R100551359棋盘问题


#include
int dc(int a)
{
int b=1;
for(int i=1;i<=a;i++)
{
b=b*i;
}
return b;
}
int fz(int x,int s)
{
    int n=dc(x);
    int m=dc(s)*dc(x-s);
    return n/m;
}
int min(int a,int b)
{
    int min;
    if(a<=b)min=a;
    else min=b;
    return min;
}
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    int z=0,c,g;
    //2*2_(n-1);3*3_(n-2)_(n-(i-1))
    int x=min(n,m);
    for(int i=1;i<=x;i++)
    {
        z=z+(n-(i-1))*(m-(i-1));
    }
    g=fz(n+1,2)*(fz(m+1,2));
    
    c=g-z;
    //printf("%d\n",g);
    printf("%d %d",z,c);
}

最后两个测试组过不了,想问一下是代码哪里出了问题

回答不易,求求您采纳点赞哦

如果没有更多关于测试组应该完成什么以及具体失败是什么的信息,很难说代码有什么问题。但是,代码中可能存在的一些问题包括:

  • 对于非整数、负整数或对于 int 数据类型来说太大的整数,没有错误处理。
  • 函数 min() 未在主函数中使用。
  • 函数 fz() 使用变量名“x”和“s”,它们的含义不明确。
  • 代码中没有注释或解释来表明代码的目的是什么或它是如何工作的。值得用不同的输入测试代码并检查输出是否符合您的预期。
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^