蓝桥杯第五届省赛JAVA真题----n级台阶
有n级台阶。从地面(第0级)出发,首先连续的上台阶,上到不超过第n级的某一个位置后再连续的下台阶,直到回到地面。若每次上下台阶只允许走1级或2级,请问可能的上下台阶的方案数是多少?
特别地,在0级站着不动也算一种方案。
数据格式:
输入一行包含两个正整数n和m。
输出一个整数,表示n级台阶有多少种合法的走楼梯方案,答案对m取余。
例如:输入:
2 10007
程序应该输出
6
【样例说明1】
共有6种方案(其中+表示上台阶,-表示下台阶):
(1) 原地不动
(2) +1 -1
(3) +2 -2
(4) +2 -1 -1
(5) +1 +1 -2
(6) +1 +1 -1 -1
再例如,输入:
3 14
程序应该输出:
1
【样例说明2】
共有15种方案,对14取余后得1。
【数据规模】
对于30%的数据,n<=10000;
对于100%的数据,n<=10^17,m<=2*10^9。
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
解析:这个题目不要被上楼梯、下楼梯搞迷糊了,我们只需要计算出每次走1步或2步,走n级台阶有几种可能性就可以了。至于下楼梯的情况平方以下就可以了。
import java.util.Scanner;public class Main {static int cnt = 0;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int sum=0;for(int i=0;i<=n;i++){f(i, 0);sum += cnt*cnt;cnt = 0;}System.out.println(sum%m);}private static void f(int n, int i) {// TODO Auto-generated method stubif (i > n) {return;}if (i == n) {cnt += 1;}f(n, i + 1);f(n, i + 2);}
}
当然,大神的代码一般都是这样的,如果看不太懂就看上面的方法吧。
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int sum=1;for(int i=0;i<=n;i++){sum+=i*i;}System.out.println(sum%m);}
}
蓝桥杯第五届省赛JAVA真题----n级台阶相关推荐
- 蓝桥杯第五届省赛JAVA真题----七对数字
今有7对数字:两个1,两个2,两个3,-两个7,把它们排成一行. 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字.如下就是一个符合要求的排列: 1712642 ...
- 蓝桥杯第五届省赛JAVA真题----最长公共子序列
一个串的子串是指该串的一个连续的局部.如果不要求连续,则可称为它的子序列. 比如对串: "abcdefg" 而言,"ab","abd",&q ...
- 蓝桥杯第八届省赛JAVA真题----k倍区间
标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...
- 蓝桥杯第八届省赛JAVA真题----油漆面积
标题:油漆面积 X星球的一批考古机器人正在一片废墟上考古. 该区域的地面坚硬如石.平整如镜. 管理人员为方便,建立了标准的直角坐标系. 每个机器人都各有特长.身怀绝技.它们感兴趣的内容也不相同. 经过 ...
- 蓝桥杯第三届省赛JAVA真题----取球博弈
题目描述 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断. 我们约定: 每个人从盒子中取出的球的数目 ...
- 蓝桥杯第八届省赛JAVA真题----Excel地址
标题: Excel地址 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列, ...
- 蓝桥杯第八届省赛JAVA真题----9数算式
标题:9数算式 观察如下的算式: 9213 x 85674 = 789314562 左边的乘数和被乘数正好用到了1~9的所有数字,每个1次. 而乘积恰好也是用到了1~9的所有数字,并且每个1次. 请你 ...
- 蓝桥杯第八届省赛JAVA真题----包子凑数
标题:包子凑数 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼都有非常多笼,可以认为是无限笼. 每当有顾客想买X个包子,卖包子的大叔就会 ...
- 蓝桥杯第八届省赛JAVA真题----分巧克力
标题: 分巧克力 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N 块巧克 ...
最新文章
- redis主从_Redis主从复制部署
- ASP.NET Core 模型验证的一个小小坑
- 计算机网络:第五章 传输层
- oracle函数 INITCAP(c1)
- 此人提出平行线可以相交遭嘲讽,郁郁而终,12年后却被认可
- CCF NOI1052 Self-Numbers
- cygwin清屏技巧
- pg数据库游标的使用
- ICT通信运营企业的重建之服务升级(三)----如何打造ICT服务满意度
- html 4种居中方式
- vue 上传音视频文件获取时长
- java split 字符串作为分隔符_Java 字符串分隔 split
- 计算机网络之应用层Tips
- 日志文件写入失败(permission denied)
- 20176408李俊 线性表
- 计算机管理 没有适当的权限,XP更改不了系统时间提示“您没有适当的特权级”是怎么回事...
- JavaScript-iframe
- Linux系统平均负载是如何计算的?
- linux网络电话代码,即使拨打至电话号码,Skype 翻译功能仍然可以使用啊
- 8月8本程序员新书:Rust、软技能、Python、量子...
热门文章
- linux 开启关闭tomcat服务器端口,linux系统安装、启动和关闭tomcat
- c语言 系统 dome,订餐系统(Dome)
- 实战 es6_腾讯云 Elasticsearch 实战篇(二十二) ES6.8权限使用配置
- java static方法
- 制作 小 linux 教程,用BusyBox制作Linux最小系统
- 【课题总结】OpenCV 抠图项目实战(6)色彩范围抠图
- 请领导批阅文件怎么说_请领导吃饭,不要对外说,职场员工为何如此保密?
- 群签名和环签名的区别_环签名方案的研究
- docker 删除包含关键字的镜像_30分钟带你轻松掌握Docker原理
- python 释放内存_学了4年C++后,我转向了Python