zoukankan      html  css  js  c++  java
  • 高精度乘法

    Description

    Think about a plane: 

    ● One straight line can divide a plane into two regions. 
    ● Two lines can divide a plane into at most four regions. 
    ● Three lines can divide a plane into at most seven regions. 
    ● And so on... 

    Now we have some figure constructed with two parallel rays in the same direction, joined by two straight segments. It looks like a character “M”. You are given N such “M”s. What is the maximum number of regions that these “M”s can divide a plane ? 

     

    Input

    The first line of the input is T (1 ≤ T ≤ 100000), which stands for the number of test cases you need to solve. 

    Each case contains one single non-negative integer, indicating number of “M”s. (0 ≤ N ≤ 10 12)
     

    Output

    For each test case, print a line “Case #t: ”(without quotes, t means the index of the test case) at the beginning. Then an integer that is the maximum number of regions N the “M” figures can divide.
     

    Sample Input

    2 1 2
     

    Sample Output

    Case #1: 2
    Case #2: 19
     
     
    解题思路:在直线划分平面中f(n)=f(n-1)+(n-1)+1;
    推测"M"划分平面中,一次是4条线划分,故f(n)=f(n-1)+4*(n-1)+1;
    整理得f(n)=8*n*n-7*n+1;
    n取值范围为10^12次方,故使用高精度乘法。
     
     
     
     
     
     
     
     
  • 相关阅读:
    Python form...import...和import的区别(自己理解的)
    ! cocos2d 同一个sprite的触控问题
    cocosjs 触摸
    打包apk
    单例模式
    策略模式
    工厂模式
    cocos3 singleton
    tiledmap2
    quick cocos 暂停场景
  • 原文地址:https://www.cnblogs.com/chen9510/p/4866479.html
Copyright © 2011-2022 走看看