分割立方体——蓝桥杯备赛【python】

文章讨论了如何计算一个边长为n的立方体被分割成单位立方体后,没有公共点和只有两个公共点的立方体对数。通过数学分析和编程实现,给出了公式和代码示例来解决此问题。
摘要由CSDN通过智能技术生成

一、分割立方体

试题链接:分割立方体

问题描述:

给定一个立方体,边长为n,现将其分割成nxnxn个单位立方体。分割后任意两个单位立方体,或者有2个公共点,或者有4个公共点,或者没有公共点。
请问,没有公共点和有 2 个公共点的立方体,共有多少对?
输入描述
输入一行包含一个整数 n(1 ≤ n< 30)。
输出描述
输出一个整数表示答案。

输入示例1

1

输出示例1

输入示例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)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值