zoukankan      html  css  js  c++  java
  • <<剪绳子>>题解

    题目描述:
    一条绳子从中间剪一刀可以剪成两段绳子,如果对折(1)次,中间剪一刀可以剪出(3)段绳子,如果连续对折(2)次,中间剪一刀可以剪出(5)段绳子,那么,连续对折(n)次,中间剪一刀可以剪出多少段绳子?

    通过编写程序,在给定绳子对折次数的情况下,计算出中间剪一刀后可剪出绳子的段数。

    解题思路:

    总结规律:
    第一次对接时,可以把绳子头尾看作是连在一起的,这样绳子经过第一次对接后,成了一个圈,把这个圈一拉,成了两根对接绳子,中间剪断,左右一根。再把头尾分开,就是3根。按此推理:
    对接1次:2的1次方是2+1
    对接2次:2的2次方是4+1
    对接3次:2的3次方是8+1
    对接4次:2的4次方是16+1
    对接5次:2的5次方是32+1

    #include <bits/stdc++.h>
    
    using namespace std;
    
    /*
    0折  ---- 2段绳子    2^n+1
    1折  ---- 3段绳子
    2折  ---- 5段绳子
    3折  ---- 9段绳子
    4折  ---- 17段绳子
    n折
    */
    
    int main() {
        int n;
        cin >> n;
        printf("%d", (int)pow(2, n) + 1);
        return 0;
    }
    

    扩展阅读:
    一根绳子连续对折(N)次,从中剪(M)刀,就被剪成了(2^n * m +1)段。

  • 相关阅读:
    FastJson中JSONObject用法
    复盘项目模板
    java Enum 类型
    Java List集合总结
    Spring boot 使用Slf4j 日志
    java.lang.reflect.UndeclaredThrowableException
    Intellij IDEA 中使用 Debug
    Java 13位时间戳转换日期格式
    Java 时间格式转换
    Spring boot 自定义注解
  • 原文地址:https://www.cnblogs.com/littlehb/p/14979853.html
Copyright © 2011-2022 走看看