正方形_找规律

问题 G: 正方形

时间限制: 1 Sec  内存限制: 64 MB
提交: 22  解决: 16
[ 提交][ 状态][ 讨论版]

题目描述

又到暑假啦,Conan, Ayumi, Mitsuhiko, Genta一起到Hakase家愉快玩耍(然而你却不行……)。

Ayumi, Mitsuhiko, Genta依次开始画正方形(显然Ai是不会参加这个活动的),一人一笔,画完一个,以上一个正方形四边中点为顶点接着画啊画啊画啊……最后一共画了k个正方形。最终他们想知道自己各画了多长。

输入

输入一行包含两个整数N,K,分别表示第一个正方形的边长,正方形个数。

对于100%的数据满足N≤1000,K≤1000。

 

输出

输出一行,三个实数,分别表示Ayumi, Mitsuhiko, Genta画的长度,答案保留3位小数

样例输入

100 2

样例输出

270.711 241.421 170.711
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

double z[10000];
int p[10000];

int main()
{
    int a,b;
    int cou=0;
    double suma=0;
    double sumb=0;
    double sumc=0;

    scanf("%d%d",&a,&b);
    double t=a;
    for(int i=0;i<b;i++){
        for(int j=0;j<4;j++){
            z[cou++]=t;
        }
        t=sqrt((t/2)*(t/2)*2);
    }
    cou=0;
    for(int i=0;i<1001;i++){
        for(int j=1;j<=3;j++){
            p[cou++]=j;
        }
    }
    for(int i=0;i<b*4;i++){
        if(p[i]==1){
            suma+=z[i];
            continue;
        }
        if(p[i]==2){
            sumb+=z[i];
            continue;
        }
        if(p[i]==3){
            sumc+=z[i];
            continue;
        }
    }
    printf("%.3f %.3f %.3f",suma,sumb,sumc);
    return 0;
}

 

转载于:https://www.cnblogs.com/TWS-YIFEI/p/5926402.html

<think>好的,我需要解决用户提出的关于计算10层花砖中正方形和三角形数量的问题。首先,用户提到的“多层花砖”可能指的是由正方形和三角形按照一定规律层叠排列的结构。我需要先明确这种花砖的构造规律,然后到数学规律,进而推导出计算公式,最终计算出10层时的数量。 首先,我应该假设花砖的结构可能类似于分形或者逐层叠加的几何图形。例如,每一层可能是在上一层的基础上添加一定数量的正方形和三角形。常见的类似结构比如谢尔宾斯基三角形或者正方形分形,但用户提到的是两者都有,所以可能需要具体分析。 假设每一层的正方形和三角形数量遵循某种递推关系。例如,第一层可能有1个正方形,第二层在周围添加三角形和新的正方形,依此类推。需要到每一层新增的正方形和三角形数量与层数n的关系。 为了验证这个假设,我可以先尝试手动计算前几层的数量,寻规律。例如: 层数n=1时,可能只有1个正方形,没有三角形。 n=2时,可能在正方形的每条边上添加三角形,并在四个角形成新的小正方形,这样每个边可能有1个三角形,4条边就是4个三角形,同时新增的小正方形可能是4个? 或者可能不同的排列方式。这里需要更具体的结构描述,但用户没有给出图示,可能需要基于常见结构进行假设。 另一种可能是每增加一层,正方形的数量按某种几何级数增长,比如每层新增的正方形数是上一层的k倍,而三角形同样。例如,假设每层新增的正方形数是3的n-1次方,或者其他类似规律。 或者,可能每层新增的正方形数量为4(n-1),而三角形数量为4(n-1)或者其他线性关系。例如,层数n=1时有1个正方形,n=2时周围添加4个正方形,每个边一个,同时每个边可能有2个三角形,导致三角形数量为8。但这样的假设需要验证是否符合实际结构。 由于用户没有给出具体结构,可能需要参考常见的类似问题,例如蜂巢结构、分形瓷砖等。例如,有一种可能的结构是每层由外围的正方形和三角形交替组成,每增加一层,外围的正方形数量以某种方式增加,同时三角形填充空隙。 另一个例子是:每一层的外围形成一个更大的正方形,每边的边长为n,或者每层增加的正方形数目为8(n-1),类似平方数周围增加的数量。但不确定。 或者,考虑每层新增的正方形数目为4(n-1),例如,第二层时,每个边增加1个正方形,共4边,即4*(2-1)=4个新增的正方形,第三层则为4*(3-1)=8个,以此类推。这样总的正方形数目可能为1 + 4*(1+2+…+(n-1)) =1 +4*(n-1)n/2=1+2n(n-1)。对于n=10,则为1+2*10*9=181个正方形。但这样的推测是否正确? 同样,三角形数量可能每层新增的数目是8(n-1),因为每个新增的正方形周围可能有2个三角形,或者类似的排列。例如,第二层新增4个正方形,每个周围可能有2个三角形,所以8个三角形。这样总三角形数目为8*(1+2+…+n-1)=8*(n-1)n/2=4n(n-1)。对于n=10,4*10*9=360个三角形。 但这样的推测是否正确呢?需要验证。 例如,n=1时,正方形1,三角形0;n=2时,正方形1+4=5,三角形8;n=3时,正方形5+8=13,三角形8+16=24?但可能不符合实际结构。或者,可能我的假设错误。 另一种可能的结构是,每层由内向外扩展,每一圈形成一个环,每个环的正方形数量为8(n-1),因为每边有2(n-1)个正方形,但四个角可能重复计算。例如,对于边长为n的正方形环,边上的正方形数目为4*(2n-1),但这可能不适用。 或者,考虑类似俄罗斯套娃的结构,每层的外围比内层多一层,每一层新增的正方形数目为4*(2n-1)。例如,第一层n=1时,中心一个正方形;第二层n=2时,周围一圈有4*(2*2-1)=12个正方形?这可能不太合理,导致总数迅速增长。 这时候可能需要参考已有的类似问题。例如,在数学中,计算类似由正方形和正三角形组成的蜂窝状结构的数目,可能涉及不同的递推公式。例如,每个正方形周围有四个三角形,但这样的结构可能无法无限扩展。 或者,用户所说的“花砖”可能是指每一层由正方形和三角形交替排列,比如类似阿拉伯花纹的铺砌方式,每增加一层,外围的正方形和三角形数量按某种模式增长。 由于信息有限,可能需要假设一种合理的结构,并基于此给出公式。例如,假设每层k(k从1开始)新增的正方形数目为4(k-1),而三角形数目为8(k-1)。这样,总的正方形数目为1 + 4*(1+2+…+(n-1))=1+4*(n-1)n/2=1+2n(n-1)。总三角形数目为8*(1+2+…+(n-1))=8*(n-1)n/2=4n(n-1)。 例如,当n=1时,正方形1,三角形0;n=2时,正方形1+4=5,三角形8;n=3时,正方形5+8=13,三角形8+16=24。但这样是否符合某种实际结构?比如第二层时,每个边增加一个正方形,每个边可能对应两个三角形? 或者,另一种假设:每层k新增的正方形数目为4(k-1),而三角形数目为8(k-1)。例如,当k=2时,新增4个正方形,每个正方形周围有2个三角形,所以新增8个三角形。这样,总正方形数求和到k=10时是1+4*(1+2+...+9)=1+4*(9*10/2)=1+180=181。总三角形数是8*(1+2+...+9)=8*45=360。所以10层时,正方形181,三角形360。 这可能是一个可能的答案。但需要确认是否符合用户所指的结构。例如,是否存在这样的花砖结构,其中每层k新增的正方形数目为4(k-1),而三角形数目为8(k-1)。 或者,可能每层k新增的正方形数目为8(k-1),三角形数目为8(k-1),但这样总数会不同。 此外,可能要考虑每层中的正方形和三角形如何排列。例如,每层k对应环状结构,每边有k个单元。例如,第一层中心一个正方形,第二层周围每边可能有1个正方形,四个边共4个,但四个角可能处理为三角形或其他形状。或者,可能每边有k个正方形,导致总数为4k,但需要调整角的处理。 例如,假设每层k的边上有k个正方形,那么总的正方形数目为4k,但四个角可能重复计算,所以实际是4(k-1)。例如,对于k=2层,每边有2个正方形,但角上的会被相邻两边共享,因此每个边实际新增k-1个正方形,总数为4*(k-1)。这样,总正方形数目为1(中心)+4*(1+2+...+(n-1)),即1+4*(n-1)n/2=1+2n(n-1)。例如,n=10层,就是1+2*10*9=181个正方形。同样,三角形数目可能每层新增的数目为8*(k-1),例如,每个新增的正方形周围有两个三角形,所以每层k新增的三角形数目是每个正方形对应两个三角形,所以4*(k-1)*2=8(k-1)。因此,总三角形数目为8*(1+2+...+9)=8*45=360。 这样的计算可能合理。比如,当n=2时,总正方形数5,三角形8;n=3时,正方形1+4+8=13,三角形8+16=24;依此类推。这可能符合某种实际花砖结构。 因此,最终结论可能是,10层花砖包含的正方形数量为1+2*10*9=181,三角形数量为4*10*9=360。或者,需要检查公式是否正确。 总结: 正方形数目公式:1 + 2n(n-1) 三角形数目公式:4n(n-1) 当n=10时: 正方形数=1+2*10*9=1+180=181 三角形数=4*10*9=360 因此,答案可能是181个正方形和360个三角形。 但需要确认这个公式是否正确。例如,对于n=2层: 正方形数=1+2*2*1=5,三角形数=4*2*1=8。这对应第二层新增4个正方形和8个三角形。这可能意味着,每层k新增的正方形数目是4(k-1),如当k=2时,4*(2-1)=4,总到第二层是1+4=5。而三角形数目是8(k-1),k=2时为8。这似乎符合。 因此,用户的问题的答案可能是10层时,正方形181个,三角形360个。</think>要计算10层花砖的正方形和三角形数量,需先分析其结构规律。假设每层$k$新增的正方形数为$4(k-1)$,三角形数为$8(k-1)$,则总数量可通过求和公式推导: **正方形总数** 第$k$层新增正方形数:$4(k-1)$ 总数量为: $$1 + \sum_{k=2}^{n} 4(k-1) = 1 + 4 \cdot \frac{(n-1)n}{2} = 1 + 2n(n-1)$$ 代入$n=10$: $$1 + 2 \times 10 \times 9 = 181$$ **三角形总数** 第$k$层新增三角形数:$8(k-1)$ 总数量为: $$\sum_{k=2}^{n} 8(k-1) = 8 \cdot \frac{(n-1)n}{2} = 4n(n-1)$$ 代入$n=10$: $$4 \times 10 \times 9 = 360$$ 因此,**10层花砖包含181个正方形和360个三角形**。 ```python def calculate_shapes(layers): squares = 1 + 2 * layers * (layers - 1) triangles = 4 * layers * (layers - 1) return squares, triangles squares_10, triangles_10 = calculate_shapes(10) print(f"正方形数量: {squares_10}, 三角形数量: {triangles_10}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值