题目描述

给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:

1,3,4,9,10,12,13,…

(该序列实际上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,

3^0+3^1+3^2,…)

请你求出这个序列的第N项的值(用10进制数表示)。

例如,对于k=3,N=100,正确答案应该是981。

输入格式

输入只有1行,为2个正整数,用一个空格隔开:

k N

(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。

输出格式

输出为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*10^9)。(整数前不要有空格和其他符号)。

样例输入

3 100

样例输出

981

解题思路

  这道题的解题挺巧妙的;

1        3^0                      1

2        3^1                      10

3        3^1+3^0              11

4        3^2                      100

5        3^2+3^0              101

6         3^2+3^1             110

7        3^2+3^1+3^0      111

  解释:先将序号转换成二进制,接着对每一位进行计算(二进制数中有1的位置进行计算,0则忽略);

代码如下

 #include<iostream>
using namespace std;
int main(){
int k, n, ans = , temp = ;
cin >> k >> n;
while(n){
if(n & ) ans += temp;
temp *= k;
n >>= ;
}
cout << ans << endl;
return ;
}

数列

最新文章

  1. C# 根据类型名称 生成实体 调用方法
  2. iptables 开启80端口
  3. 分区的4k对齐
  4. 关于VS2012下安装破解文件Visual Assit X的一点说明
  5. CSS里的引用@import、link
  6. 从unity3d官网下载教程
  7. WPF 中的绑定方式
  8. POJ_1065_Wooden_Sticks_(动态规划,LIS+鸽笼原理)
  9. optimizer hints
  10. c语言:从一组数据中选出可以组成三角形并且周长最长的三个数(简单)
  11. win使用telnet到ubuntu下vim显示中文为乱码的解决方法~
  12. 通过扩展改善ASP.NET MVC的验证机制[使用篇]
  13. 真实记录我入门学习Linux系统的经历
  14. Asp.Net SignalR Hub中的上下文对象
  15. mysql中主键和唯一键的区别
  16. C#与C++数据类型比较及结构体转换[整理]
  17. 文件搜索神器之everything
  18. pytorch kaggle 泰坦尼克生存预测
  19. cf1133 bcdef
  20. hdu1003 Max Sum(最大子串)

热门文章

  1. java并发编程笔记(二)——并发工具
  2. Git命令操作
  3. mysql分表分库 ,读写分离
  4. Pandas DataFrame操作
  5. Java.io包
  6. yum update过程中失败后再次执行出现“xxxx is a duplicate with xxxx”问题
  7. Neo4j-Cypher查询语言-函数
  8. React 16.4 生命周期
  9. iOS开发系列-Block
  10. Centos7上MariaDB数据库启动问题解决