sicily 1028.Hanoi Tower Sequence
来源:互联网 发布:网络与诸葛亮什么意思 编辑:程序博客网 时间:2024/05/15 23:52
解题思路:
1: 1
2: 1 2 1
3: 1 2 1 3 1 2 1
4: 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1
[1] [2] [3] [4] [5] [6] [7] [8] [9] ……
从例子中可以看出以下规律:
1、红色字体的数字左右两边出现的次数和顺序都一样
2、以第四组为例,下面中括号的数字表示的是操作的步数。
①、每一个盘子出现的间隔是一样的。如盘子1出现的步数是:1、3、5、7....。
盘子2出现的步数是:2、6、10....。
②、设题目给出的步数是P,则可以进一步发现 若 P%2 = 1,则可以知道出现在这一步的是盘子1.若P%4 = 2,则出现在这一步的是盘子2.若P%8 = 3,则出现在这一步的是盘子3.
从而推出P能被2整除的次数+1就是在第P步时出现的盘子。
#include <iostream>#include <string>using namespace std;int getMode(string a,int b){int temp = 0;for(int i = 0;i < a.length();i++){int t = temp * 10 + (a[i] - '0');temp = t % b;}return temp;}string div(string a,int b){string result = "";int temp = 0;for(int i = 0;i < a.length();i++){int t = temp * 10 + (a[i] - '0');temp = t % b;result += (t / b + '0');}return result;}int cal(string s){int count = 1;while(1){if(getMode(s,2) == 0){count++;s = div(s,2);}else{return count;}}} int main(){ int cases;int caseid = 0;cin >> cases;int count = cases;while(cases--){caseid++;string s;cin >> s;if(caseid == count){cout << "Case " << caseid << ": " << cal(s) << endl;}else{cout << "Case " << caseid << ": " << cal(s) << endl;cout << endl;}} return 0;}
- Sicily.1028. Hanoi Tower Sequence
- Sicily 1028. Hanoi Tower Sequence
- sicily 1028.Hanoi Tower Sequence
- Sicily 1028. Hanoi Tower Sequence
- Sicily 1028. Hanoi Tower Sequence
- Sicily 1028. Hanoi Tower Sequence
- sicily 1028. Hanoi Tower Sequence
- sicily 1028. Hanoi Tower Sequence
- Sicily 1028. Hanoi Tower Sequence
- [sicily online]1028. Hanoi Tower Sequence
- Sicily 1028 Hanoi Tower Sequence
- Sicily 1028 Hanoi Tower Sequence
- Sicily 1028. Hanoi Tower Sequence【高精度取余和除法】
- 1028. Hanoi Tower Sequence
- 1028. Hanoi Tower Sequence
- Sicily 解题: 1028 Hanoi Tower Sequence
- SOJ 1028. Hanoi Tower Sequence
- 算法学习【6】 - 1028. Hanoi Tower Sequence
- oracle数据库如何改变表空间数据文件的位置
- JAVA垃圾回收器如何工作
- Android CheckBox背景图透明边距
- JVM之加载、连接与初始化
- 记一段完全手工性能脚本开发(即时通信)
- sicily 1028.Hanoi Tower Sequence
- python中的for循环
- 内省与javaBean
- PHP 获取网页的所有超链接
- weblogic spring jndi 问题
- 把下载的文件存到指定的文件夹中
- fedora编译openwrt模块需求
- linux下pxe安装linux
- 《简爱》