洛谷 P2241 统计方形(数据加强版)

   你还要我怎样 要怎样

(关于我对着这个题磨了一下午,发现我仅仅是因为一个等号没加而错误这件事,真的让人很伤心)

  任何一个人会忘记加等号 我都会很伤心的ok?


开始题解

重要内容 :

1.

我们一定一定要知道的一个公式

在以n为长,m为宽的矩形中,如果,n<m

它包括的正方形为n*m+(n-1)*(m-1)+.......(n-n)*(m-n)

2.矩形=长方形+正方形

公式:(n!)*(m!)-sqr

n的阶乘×m的阶乘-正方形个数

举个例子:

谁又会知道,我为了一个正着的图上传了三遍图片呢,呜呜TAT


ok  放ac代码

#include<stdio.h>
int main()
{
    long long int n,m,sqr=0,rec=0,k=0,l=0; 

//n和m是宽和长,sqr是正方形,rec是长方形,k和l是我的两个工具数。


    scanf("%lld%lld",&n,&m);                    //long long int 要用lld (一定要记住)


    for(long long int i=0;i<m;i++)  //这里是我开始计算正方形
    {
        if((n-i>0)&&(m-i>0))
    sqr=sqr+((n-i)*(m-i));
    }
    for(long long int j=0;j<=m;j++)   //这里开始计算长方形
        l=l+j;
    for(long long int p=0;p<=n;p++)
        k=k+p;
    rec=l*k-sqr;   //记得要减去正方形
    printf("%lld %lld ",sqr,rec);   //输出别忘了lld
}
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值