ZCMU-1110-三角形转置

来源:互联网 发布:优化脱硫指标 编辑:程序博客网 时间:2024/05/21 10:30

1110: 城哥烦恼

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 251  Solved: 69
[Submit][Status][Web Board]

Description

LLC同学是一个极度喜欢数学的孩子,可是最近几天一直闷闷不乐,不知究竟所谓何事,不问不知道,一问吓一跳,我们LLC同学竟然被一道图形变换的题目难住了,相信各位学弟学妹们也不想看着LLC学长一直闷闷不乐的样子,所以我把题目告诉大家希望大家能帮助LLC学长解决这个问题:

              现在有一个正三角形的队伍,第一行有1个人,第二行有2个人。。。第n行有n个人(如图a所示),现在要变成倒三角形,就是第一行有n个人,第二行有n-1个人。。。第n行有1个人(如图b所示)输出最少要转换的人数

                *                                                         * * *

            * *                                            * *

           * * *                                            *

       (a)                                           (b)

Input

输入包含多组测试数据。

每行一个整数n (1 <= n <= 10000),代表锥形之阵的层数。
注:
正三角形从前往后依次是1个人,2个人,...,n个人 (如图所示的阵型)
倒三角形之阵从前往后依次是n个人,n-1个人,...,1个人

Output

每组测试数据输出一行
每行一个整数,代表攻守转换之时至少需要移动的人数。

Sample Input

3
4

Sample Output

2
3

【解析】
我觉得这道题我是真的从一开始没做对,之后停了几个月现在重新写了一下其实他是有规律的我们可以发现它是按照三角形来走的,我们可以这么想再在第一个三行来临之前
每行贡献一个点,在三行来临之后每行用2个顶点
#include <cstdio>#include <cmath>#include<iostream>using namespace std;int main(){    int n,sum,count;    while (~scanf("%d",&n))    {        sum=0;       count=1;    if (n==1)        printf("0\n");    else    {        {            for (int i=1;i<n;i++)            {                sum+=count;                if(i%3==0)                    count++;            }            printf("%d\n",sum);        }    }    }    return 0;}

0 0
原创粉丝点击