题目描述:http://www.rqnoj.cn/problem/4

本题并不复杂,但我还是遇到了一点阻碍,下面说明一下。起初的想法是,采用vector存储计算所有值,每增加一个新幂值项,都需要把之前vector中已有的数据加上该值再存储到vector,这也就达到了对幂值以及幂值所有组合的存储,用一个count变量计数,达到N结束即可。理论上这一方法可行,测试也通过,但是显然的是这需要较大的存储,且中间的无用功太多,参考代码如下,但此方法不推荐。

#include<iostream>#include<vector>using namespace std;int main(){int k,N;int temp = 1,count;vector<int> v;//存值cin>>k>>N;v.push_back(temp);count = 1;while(1){int presize = count;temp *= k;v.push_back(temp);count++;for(int i = 0;i<presize;i++){v.push_back(temp+v[i]);count++;if(count==N){cout<<v[count-1]<<endl;break;}} }system("pause");return 0;}

这里介绍最终通过的代码,核心思想是位运算。注意题目中的例子序列:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,可以认为是比特位依次为01,10,11,100,101,110...而最终的N也就是一串01序列,只需要对应位为一的幂值相加也就是最终结果了,代码大大简化。参考代码如下,轻松AC通过。

#include<iostream>
using namespace std;int main()
{int k,N;cin>>k>>N;int temp = 1;int ans = 0;while(N){if(N & 1)//末位为1?若为一则加上对应幂值ans += temp;temp *= k;N >>= 1; //右移位运算,也可用N/=2代替}cout<<ans<<endl;system("pause");return 0;
}

RQNOJ:PID4 数列相关推荐

  1. java 斐波拉_Java实现斐波那契数列

    斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&g ...

  2. 剑指offer:面试题10- I. 斐波那契数列

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 ...

  3. [NOI2005]维护数列

    输入格式 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进行的操作数目. 第 2 行包含 N 个数字,描述初始时的数列. 以下 M 行,每行一条命令,格式参见问题 ...

  4. 【BZOJ4282】慎二的随机数列 乱搞

    [BZOJ4282]慎二的随机数列 Description 间桐慎二是间桐家著名的废柴,有一天,他在学校随机了一组随机数列, 准备使用他那强大的人工智能求出其最长上升子序列,但是天有不测风云,人有旦夕 ...

  5. 用递归法计算斐波那契数列的第n项

     斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...

  6. 循环斐波那契数列_剑指offer #10 斐波那契数列

    (递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...

  7. 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?

    自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...

  8. 算法(1)斐波那契数列

    1.0 问题描述 实现斐波那契数列,求第N项的值 2.0 问题分析 斐波那契数列最简单的方法是使用递归,递归和查表法同时使用,可以降低复杂度. 根据数列特点,同时进行计算的数值其实只有3个,所以可以使 ...

  9. NOIP模拟题 斐波那契数列

    题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...

  10. C# 最快的逐一打印斐波那契结果数列的算法

    用这种方法就无需将数列中的每一个元素都计算一遍了! 说多无谓,直接上代码吧! private void button5_Click(object sender, EventArgs e) { FiBo ...

最新文章

  1. Google Colab使用教程
  2. 遍历文件夹_使用JavaScript遍历本地文件夹的文件
  3. Docker框架使用系列教程(六)创建镜像
  4. hprof文件分析工具_【赵强老师】如何分析Java的内存溢出问题
  5. java 判断ip和port是否存活_java判断IP和端口号是否可以访问
  6. C 语言这么厉害,它自身是用什么语言写的?
  7. js layui跳转页面_js中实现页面跳转
  8. java 整合永中云预览模块
  9. 蓝牙inquiry流程之HCI_Inquiry_Result_With_RSSI和HCI Extended Inquiry Result处理
  10. 最简单小米设备怎么不root激活xposed框架
  11. Python分析《武林外传》 -----转载
  12. 湖南生物机电职院信息技术学院召开第一届思政工作会议
  13. 山西民生云登录显示服务器异常,山西民生云服务器异常
  14. 各类文件的文件头尾总结
  15. 计算机boot进入u盘启动,戴尔服务器怎么进入u盘启动模式 选择oneshotbios
  16. 2019广工ACM校赛决赛A题:思维题 HDU 6461 zsl 和hzy的生存挑战
  17. 金融之期货软件搭建,股票平台搭建,融资融券平台搭建
  18. mysql中高阶玩法系列(七)
  19. vlc集成c#_c# winform vlcPlayer播放器
  20. PIE SDK大气校正

热门文章

  1. VS2013添加反编译工具-ILDasm
  2. RINEX格式文件内容解读
  3. 细粒度分类网络之WS-DAN论文阅读附代码
  4. java 大数四则运算_Java中的大数运算
  5. SPSS -正态检验
  6. JMeter之BeanShell的变量使用方法
  7. gps导航卫星星历及历书参数意义
  8. Linux下视频流媒体直播服务器搭建详解
  9. 冰点--免积分下载百度文库、豆丁、道客巴巴文章
  10. WordPress小程序源码 社区论坛小程序源码 知识付费商城小程序下载