题目链接:点击打开链接
题目描述
一天,小厚的好朋友给了他n个面积为1的正三角形。小厚比较喜欢规整的形状,所以他想要用这些正三角形拼成一个正多边形。要求恰好拼为一个正多边形,不可裁剪,多边形内部也不能有空隙。小厚想知道他能拼出的最大的一个正多边形面积为多少。正三角形可以有剩余。
输入
多组输入,输入到文件结束(EOF)
每组输入,输入一个正整数n(1 <= n <= 1000)
每组输入,输入一个正整数n(1 <= n <= 1000)
输出
对于每组输入,输出一个正整数,表示拼出的最大正多边形的面积。
示例输入
1
2
6
示例输出
1
1
6
<span style="font-size:18px;">#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n;
int a[2005];
while(cin>>n)
{
int q=0;
int top=0;
for(int i=1;i<=n;i+=2)
{
q=q+i;
a[top++]=q;
a[top++]=q*6;
}
sort(a,a+top);
for(int i=0;i<top;i++)
{
if(a[i]>n)
{
q=i-1;
break;
}
}
printf("%d\n",a[q]);
}
return 0;
}
</span>