数列(sequence)
来源:互联网 发布:微博域名怎么改 编辑:程序博客网 时间:2024/04/29 23:13
【问题描述】
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:
1,3,4,9,10,12,13,…
(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
请你求出这个序列的第N项的值(用10进制数表示)。
例如,对于k=3,N=100,正确答案应该是981。
【输入文件】
输入文件sequence.in 只有1行,为2个正整数,用一个空格隔开:
k N
(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。
【输出文件】
输出文件sequence.out为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*109)。(整数前不要有空格和其他符号)。
【输入样例】
【输出样例】
981
【解题过程】
<在德国图灵根著名的郭塔王宫图书馆(Schlossbiliothke zuGotha)保存着一份弥足珍贵的手稿,其标题为:
“1与0,一切数字的神奇渊源。这是造物的秘密美妙的典范,因为,一切无非都来自上帝。”
这是德国天才大师莱布尼茨(Gottfried Wilhelm Leibniz,1646 -1716)的手迹。但是,关于这个神奇美妙的数字系统,莱布尼茨只有几页异常精炼的描述。用现代人熟悉的话,我们可以对二进制作如下的解释:
2^0 = 1
以此类推。
把等号右边的数字相加,就可以获得任意一个自然数。我们只需要说明:采用了2的几次方,而舍掉了2几次方。二进制的表述序列都从右边开始,第一位是2的0次方,第二位是2的1次方,第三位时2的2次方……,以此类推。一切采用2的成方的位置,我们就用“1”来标志,一切舍掉2的成方的位置,我们就用“0”来标志。这样,我们就得到了下边这个序列:
1 1 1 0 0 1 0 1
2的7次方
在这个例子中,十进制的数字“229”就可以表述为二进制的“11100101”。任何一个二进制数字最左边的一位都是“1”。通过这个方法,用1到9和0这十个数字表述的整个自然数列都可用0和1两个数字来代替。0与1这两个数字很容易被电子化:有电流就是1;没有电流就是0。这就是整个现代计算机技术的根本秘密所在。>
n
1(3^0):
2(3^1):
3(3^0+3^1):
4(3^2):
5(3^0+3^2):
6(3^1+3^2):
7(3^0+3^1+3^2):
.
.
.
· 十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)
下面需要做的就是根据“0”、“1”计算出第n位上的数,即将二进制数转换为k进制数
【晒代码】
program sequence;
- 数列(sequence)
- 数列(sequence)
- 递归数列(recursive sequence)
- NOIP2006数列(sequence)
- [NOI2005] 维护数列 sequence
- 【循环节】数列 sequence
- bzoj2656: [Zjoi2012]数列(sequence)
- 数列(sequence) 题解
- BZOJ2656: [Zjoi2012]数列(sequence)
- 【ZJOI2012】【BZOJ2656】数列(sequence)
- BZOJ2656 [Zjoi2012]数列(sequence)
- 2656: [Zjoi2012]数列(sequence)
- bzoj2656 [Zjoi2012]数列(sequence)
- 2656: [Zjoi2012]数列(sequence)
- 斐波纳契数列(Fibonacci Sequence)
- 【BZOJ 2656】 [Zjoi2012]数列(sequence)
- Lucas Sequence(卢卡斯数列)
- BZOJ 2656 [Zjoi2012] 数列(sequence)
- 大整数运算模板(减法)
- 手把手让你爱上Android sdk自带“9妹”(9patch 工具),让Android游戏开发更方便!
- 大整数运算(加法)
- 大整数运算(乘法)
- DOS命令大全
- 数列(sequence)
- POJ 1002 487-3279
- POJ 2247 Humble Numbers
- POJ 1753 Flip Game
- POj 3292 Semi-prime H-numbers
- POJ 1182 食物链
- ZZULI 1208 二叉树(1)
- ZZULI 1209 二叉树(2)
- python 加载c/c++动态库流程小记