6760: 九连环

http://exam.upc.edu.cn/problem.php?id=6760

时间限制: 1 Sec  内存限制: 128 MB
提交: 582  解决: 92
[提交] [状态] [讨论版] [命题人:admin]

题目描述

九连环是一种源于中国的传统智力游戏。如图所示,九个圆环套在一把“剑”上,并且互相牵连。游戏的目标是把九个圆环从“剑”上卸下。

圆环的装卸需要遵守两个规则。
第一个(最右边)环任何时候都可以装上或卸下。
如果第k个环没有被卸下,且第k个环右边的所有环都被卸下,则第k+1个环(第k个环左边相邻的环)可以任意装上或卸下。
与魔方的千变万化不同,解九连环的最优策略是唯一的。为简单起见,我们以“四连环”为例,演示这一过程。这里用1表示环在“剑”上,0表示环已经卸下。
初始状态为1111,每部的操作如下:
1101(根据规则2,卸下第2个环)
1100(根据规则1,卸下第1个环)
0100(根据规则2,卸下第4个环)
0101(根据规则1,装上第1个环)
0111(根据规则2,装上第2个环)
0110(根据规则1,卸下第1个环)
0010(根据规则2,卸下第3个环)
0011(根据规则1,装上第1个环)
0001(根据规则2,卸下第2个环)
0000(根据规则1,卸下第1个环)
由此可见,卸下“四连环”至少需要10步。随着环数增加,需要的步数也会随之增多。例如卸下九连环,就至少需要341步。
请你计算,有n个环的情况下,按照规则,全部卸下至少需要多少步。

输入

输入第一行为一个整数m ,表示测试点数目。
接下来m行,每行一个整数n。

输出

输出共m行,对应每个测试点的计算结果。

样例输入

3
3
5
9

样例输出

5
21
341

提示

对于10%的数据,1≤n≤10。
对于30%的数据,1≤n≤30。
对于100%的数据,1≤n≤105,1≤m≤10。

规律:

奇数 :  a[i-1]*2+1;

偶数:a[i-1]*2;

代码:

import java.util.*;
import java.math.*;public class dashu{public static void main(String[] args) {int m,n;Scanner cin=new Scanner(System.in);m=cin.nextInt();while(m>0) {m--;n=cin.nextInt();if(n==1)System.out.println("1");else{BigInteger s;BigInteger a=BigInteger.valueOf(1);BigInteger b=BigInteger.valueOf(2);s=a;for(int i=2;i<=n;i++){if(i%2==0)s=s.multiply(b);else{s=s.multiply(b);s=s.add(a);}}System.out.println(s);}}}
}

6760: 九连环(大数)相关推荐

  1. 大数加法分析及C语言实现(加数可为负数)

    大数加法(加数可为负数) ·分析: 大数加法有如下几种情况: 1.两数同号 (1)同正:如,s1=11,s2=22:s1=0,s2=0 (2)同负:如,s1=-11,s2=-22 2.两数异号 (1) ...

  2. 大数加法【HDU 1002】

    大数加法模板 一般的加法只要int类型的两数直接相加即可,大一点的数可以设为long long类型,而超过长整型的数则属于大数问题了,大数加法其实也比较简单,利用数组实现就可以啦: 主要思想如下: ( ...

  3. C语言实现大数运算(长整数的加、减、乘、除)

    由于整型数的位数有限,因此整型数不能满足大整数(超长整数)的运算要求 .大整数计算是利用字符串来表示大整数,即用字符串的一位字符表示大整数的一位数值,然后根据四则运算规则实现大整数的四则运算. 简单表 ...

  4. 数据结构(十)栈的作用--大数的加法运算

    一.大数加法的定义 在Java中,整数类型有四种,byte(8位).short(16位).int(32位).long(64位). 其中,int类型为32为,也就是说最大的整数为2^31,如果超过了这个 ...

  5. 数据库 大数据访问及分区分块优化方案

    本文导读:当系统要满足每秒数万次的读写请求的需求时,我们可以用分布式计算.编写优良的程序代码.对海量数据进行分区操作.建立广泛的索引.建立缓存机制.加大虚拟内存.分批处理.使用数据仓库和多维数据库存储 ...

  6. 大数的减法函数--c语言

    代码展示:   http://paste.ubuntu.com/23693598/ #include<stdio.h> #include<stdlib.h> #include& ...

  7. javascript乘法和加法_JavaScript大数相加相乘的实现方法实例

    前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...

  8. P1080 国王游戏(贪心+大数乘除)

    题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...

  9. hdu A + B Problem II(大数相加,数组实现)

    hdu A + B Problem II(大数相加,数组实现) 题目走起 注意最后一个case 不需要换行 下面代码 #include<stdio.h> #include<strin ...

最新文章

  1. 如何利用AI语义分析,做产品需求分析(1)
  2. 根据API创建BOM(Itpub)
  3. 不懂编程可以自学python吗-关于大学小白如何学习Python语言程序设计
  4. js数组的sort排序详解
  5. JUC 中的多线程协作工具类:CountDownLatch 和 CyclicBarrier
  6. Webpack基础之入口起点
  7. 基于时空相关属性模型的公交到站时间预测算法
  8. Java笔记-Linux环境中因编码问题导致中文String解析有问题
  9. Samsung ML-1640/1641/1645/2240/2241/2245/scx4200/4300/4623/4824/4828免费清零软件2.1.2完全版
  10. JButton的使用
  11. java中实现注册时Email邮件激活验证
  12. python实现货币的转换_Python实现制度转换(货币,温度,长度)
  13. pytorch转onnx报错的可能原因traced region did not have observable data dependence
  14. WordCloud库的安装教程
  15. circular包绘图笔记
  16. 改善到底多大 FXAA画质游戏实测
  17. 【SSH 出现PTY错误】
  18. ERP : 投入控制
  19. 原来消除手机上瘾才是幼儿编程的最大意义-大宝python学习记
  20. 从0开始写一个操作系统

热门文章

  1. C/C++程序员给大家示范一下,怎么在七夕表白
  2. RDD编程模型笔记(一)
  3. java抽象类例子_java抽象类经典实例分享
  4. Detected problems with API compatibility
  5. Wamp 提示Aestan Tray Menu服务未启动(非端口原因)
  6. php 0x80070003,HOWTO: 解决 Windows DISM error ID3 0x80070003 故障
  7. 为什么蓝牙耳机这么受欢迎?学生党玩游戏适合什么款式蓝牙耳机?
  8. 实参与形参不兼容_装修到底是用瓷砖?还是复合木地板还是实木地板好呢?
  9. 通达oa工作流升级 操作说明
  10. 实现垃圾邮件过滤(Python3实现)