码迷,mamicode.com
首页 > 编程语言 > 详细

C++9018:1812——长方形

时间:2021-04-13 12:26:55      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tar   cin   lse   ret   lan   nbsp   mes   code   div   

题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1812

题目描述

棒棒棒有一根长度为n的棒棒,现在他用Prehistorical Power把这根棒棒折成一个长方形且不能是正方形。他想知道他有多少种折法。

 

输入

输入一行,有一个n,为棒棒长度

 

输出

输出一行,为折法的数量

 

样例输入

20

样例输出

4

提示

【样例解释】

样例2只能做边长为1和9,2和8,3和7,4和6的四种长方形。

【数据范围】

对于100%的数据,0<=n<=1018

作者分析:这是一道关于数论的题目,我们来分析一下:首先,若n为奇数,则不能组成长方形;长方形由长和宽组成,周长 = 2 *(长 + 宽),把n除以2,商为长和宽的和,若商为偶数,则可以组成正方形(为什么呢?),奇数就不能组成正方形,下面我们来枚举一下情况:

n = 10;1,4;2,3;n / 2 = 5,奇数。

n = 12;1,5;2,4;n / 2 = 6,偶数。

总结出来,n / 2如果是奇数,答案是n / 2;n / 2如果是偶数,答案是n / 2 - 1;

#include <bits/stdc++.h>
using namespace std;

int main(){
    unsigned long long n,ans;
    cin >> n;
    if (n <= 4 || n % 2 == 1){
        cout << "0";
        return 0;
    }
    n /= 2;
    if (n % 2 == 0) ans = n / 2 - 1;
    else ans = n / 2;
    printf("%lld",ans);
}

C++9018:1812——长方形

标签:tar   cin   lse   ret   lan   nbsp   mes   code   div   

原文地址:https://www.cnblogs.com/linyiweiblog/p/14650641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!