在幼儿园的时候,我们就学习过把一个数分成\(a\)与\(b\),我们只需要用计算机来模拟这个过程就可以了。

我们先从奇数开始看起,以\(5\)为例:

我们可以发现,\(5\)可以分成\(1\)和\(4\),\(2\)和\(3\),\(3\)和\(2\),以及\(4\)和\(1\),也就是说,一个奇数可以有\(n-1\)种方法进行分解,去重后也就是\((n-1)\div2\)种方法。

可以在举一个例子,如\(7\),它可以分成\(1\)和\(6\),\(2\)和\(5\),\(3\)和\(4\),\(4\)和\(3\),\(5\)和\(2\),\(6\)和\(1\),去重后就是\(1\)和\(6\),\(2\)和\(5\),\(3\)和\(4\),共\(3\)种,再用刚刚推出的公式,\((7-1) \div 2 = 3\),发现公式是正确的。

再看偶数,在这里以\(4\)为例。

我们可以发现,一共有\(3\)种方法可以将\(4\)分解,和奇数一样,也有\(n-1\)种方案,其中,\(2\)与\(2\)是重复的,去掉,\(3\)和\(1\)也是重复的,去掉。因此我们发现,\(4\)只有\(1\)和\(3\)一种分解方法,可以用\((n-1)\div2\)的方法判断。

最后我们发现,他们的公式都一样,所以可以直接套公式。

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<(n-1)/2;
return 0;
}

最新文章

  1. ORACLE十进制与十六进制的转换
  2. java生成4个不同的随机数
  3. C# 将日期转换成中文格式
  4. 菜鸟学习HTML5+CSS3(一)
  5. UVALive - 3713 Astronauts
  6. initrd.gz的解压和制作
  7. poj1284:欧拉函数+原根
  8. python之简单入门01
  9. mongoexport导出数据
  10. vhd镜像格式及vhd-util工具应用
  11. js的变量声明以及变量提升
  12. linux下svn用法
  13. 《你必须掌握的Entity Framework 6.x与Core 2.0》正式出版感想
  14. C# 在webapi项目中配置Swagger
  15. SpringBoot 多数据源分布式事务
  16. 一个Monkey测试的小坑
  17. Python *Mix_w2
  18. git hub 第一篇
  19. vue - @click 用到的修饰符
  20. 检索 COM 类工厂中 CLSID 为 {00021A20-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80080005

热门文章

  1. python常用模块集合
  2. 使用docker创建MySQL容器,并在springboot中使用
  3. 在webform中使用ajax
  4. 封装好通用的reset.css base.css 样式重置css文件
  5. css常用样式font控制字体的多种变换
  6. MFC/QT 学习笔记(四)——MFC基于对话框学习控件(上)
  7. 最新咕咆+鲁班+图灵+享学+蚂蚁+硅谷+源码 Java架构师资料《Java架构师VIP课程》
  8. cra
  9. youtube使用youtube-dl下载挂代理的方法
  10. switch 语句 总结笔记