专栏文章
题解:P12252 [蓝桥杯 2024 国 Java B] 七边形
P12252题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipjm5nh
- 此快照首次捕获于
- 2025/12/03 13:04 3 个月前
- 此快照最后确认于
- 2025/12/03 13:04 3 个月前
水一发。
思路
很明显,这是一道递归题,那要怎么递归呢?很简单,先观察图形,可以发现,每一个图形都是一个大的七边形,套上上一个图形,我们把它拆分成几个部分:

我们先看红色部分,不难看出,第 个图形的红色部分的边上共有 个点,同时重复了 个点。
再看蓝色(画圈)部分,可以知道,它是上一个图形。
再看黄色部分,可以看出,它是红色和蓝色部分的重合部分,我们可以找一下规律:
- 第一个图形: 个
- 第二个图形: 个
- 第三个图形: 个
- 第四个图形: 个
可以发现,第 个图形的黄色部分为 个点。
设第 个图形总点数(小球数)为 ,则 为:
红色部分加上蓝色部分减去黄色部分
也就等于:。
化简:。
等于:。
算完了,但是还有几个注意事项:
- 初始化 。
- C++古训:不开()见祖宗。
上代码:
CPP#include<cstdio>
long long a[20240605];
int main(){
a[1]=1;
for(int i=2;i<=20240601;i++)a[i]=i*5ll+a[i-1]-4ll;
printf("%lld\n",a[20240601]);//我是不会告诉你答案是1024204791742101的
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...