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