当前位置: 代码迷 >> 综合 >> 小厚的三角形
  详细解决方案

小厚的三角形

热度:64   发布时间:2023-10-23 09:21:32.0

小厚的三角形

Time Limit: 1000MS Memory limit: 65536K

题目描述

一天,小厚的好朋友给了他n个面积为1的正三角形。小厚比较喜欢规整的形状,所以他想要用这些正三角形拼成一个正多边形。要求恰好拼为一个正多边形,不可裁剪,多边形内部也不能有空隙。小厚想知道他能拼出的最大的一个正多边形面积为多少。正三角形可以有剩余。

输入

多组输入,输入到文件结束(EOF)
每组输入,输入一个正整数n(1 <= n <= 1000)

输出

对于每组输入,输出一个正整数,表示拼出的最大正多边形的面积。

示例输入

1
2
6

示例输出

1
1
6

提示

对于第二组,两个正三角形不能完整拼出一个正多边形。因此最大面积为一个正三角形的面积 = 1。

PS:二维平面内各边相等,各角也相等的多边形叫做正多边形
#include <string.h>
#include <stdio.h>
int a[1000];
int b[1000];
int main()
{
    int n,m,i,j;
    for(i = 1; i < 120; i++)
    {
        b[i] = i*i;
    }
    a[1] = 6;
    for(i = 2; i < 120; i++)
    {
        a[i] = b[i]*6;
    }
    while(~scanf("%d",&n))
    {
        for(i = 1; i < 120; i++)
        {
            if((a[i] <= n)&&(a[i+1] > n))
            {
                break;
            }
        }
        for(j = 1; j < 120; j++)
        {
            if((b[j] <= n)&&(b[j+1] > n))
            {
                break;
            }
        }
        if(a[i] > b[j]) printf("%d\n",a[i]);
        else printf("%d\n",b[j]);
    }
    return 0;
}
这一题的方法是你要找出组成的正三角形与正六边形,
三角形就是上一个三角形的四倍
而六边形则是三角形的六倍就取出来了,,
代码菜鸟,如有错误,请多包涵!!
  相关解决方案