玩叠骰子

玩叠骰子

时间限制(普通/Java):3000MS/10000MS          运行内存限制:65536KByte

描述

大家都玩过骰子吧,骰子一般都被用来赌博的工具,但是我们ACM的成员不一样。我们可以用骰子来编写出各种各样的题目,给广大爱好ACM的人锻炼思考问题的能力。看看骰子:


很熟悉吧o(∩_∩)o ~~~ 废话不多说我们看题:现在给你n个骰子,把他们规范的叠起来,叠好后会有一些骰子的面被遮住,现在问你怎么叠没被遮住的那些面的点数和最大? 说明:叠的时候不能错开的叠,也就是说两个面要满满的叠住。并且叠在地上的那面也算被遮住的。Do you know?

 

上面这个叠法就不合法。 骰子:每个面点数分别是:1,2,3,4,5,6 1点的对面是6点,2的对面是5点,3的对面是4点,

各自的位置关系再看图。

 

输入

输入多组数据。 输入给定骰子的数目n,1<=n<=1000000。

输出

输出没被遮住的那些面的点数最大和。每个数据之间换行。

 

样例输入

1

3

5

9

 

样例输出

20

51

81

141

 

 题解:此题根据所给出的数据来套规律,除1为20外(1放在地上),其他都可套用以下公式(1+2+3+4+5+6=21)

 公式:21*n-((n-3)/2+1)*12 = 15 *n + 6


/* 3 : 21*3 - 12
    5 : 21*5 - 12*2
    7 : 21*7 - 12*3
    9 : 21*9 - 12*4
   */

 

#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
    int n;
    while(~scanf("%d",&n))
    {

        if(n==1)
        printf("20\n");
        else
        printf("%d\n",15*n+6);
    }
    return 0;
}

 

 

 

 

 

 

转载于:https://www.cnblogs.com/lavender913/p/3326491.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值