一、分割立方体
试题链接:分割立方体
问题描述:
给定一个立方体,边长为n,现将其分割成nxnxn个单位立方体。分割后任意两个单位立方体,或者有2个公共点,或者有4个公共点,或者没有公共点。
请问,没有公共点和有 2 个公共点的立方体,共有多少对?
输入描述
输入一行包含一个整数 n(1 ≤ n< 30)。
输出描述
输出一个整数表示答案。
输入示例1
1
输出示例1
0
输入示例2
3
输出示例2
297
问题分析
想像一个边长为n的正方体,他分成了n×n×n个小正方体(比如n=3时,可以分成27个),那么他的八个顶点(n>=3)有三个相连的面;12条棱上的小正方体有12*(n-2)个,每个有三个相连的面;在6个面上的小正方体有6*(n-2)^2个,每个有五个相连的面;在里面的小正方体有(n-2)^3个,每个有六个相连的面。这些小正方体和他们相连的面都有四个交点,而题目要求0或2个交点。那就用总的减去这些,总的有n^3*(n^3-1)对小正方体,减去这些对,然后记得要除以2.
代码示例
n=int(input())
s=n**6-n**3-3*8-4*12*(n-2)-5*6*(n-2)**2-6*(n-2)**3
print(s//2)