C++9018:1812——长方形
2021/4/12 22:55:11
本文主要是介绍C++9018:1812——长方形,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目来自: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——长方形的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享