测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A46319. 上台阶小瓜想走上一个一共有n级的台阶,由于小瓜的腿长比较特殊,他一次只能向上走1级或者3级或者5级台阶。小瓜想知道他有多少种方法走上这n级台阶,你能帮帮他吗?#输入一行一个整数n(n<=100000),表示一共有n级台阶。#输出一行一个整数,表示小瓜上台阶的方案数对100003取余的结果。#样例输入3样例输出2

填空题 中等

题目描述

上台阶

小瓜想走上一个一共有n级的台阶,由于小瓜的腿长比较特殊,他一次只能向上走1级或者3级或者5级台阶。小瓜想知道他有多少种方法走上这n级台阶,你能帮帮他吗?#

输入

一行一个整数n(n<=100000),表示一共有n级台阶。#

输出

一行一个整数,表示小瓜上台阶的方案数对100003取余的结果。#

样例输入

3

样例输出

2

参考答案

#include<iostream> using namespace std; long step[1000003] = {0}; int main(){ int N; cin>>N; if(N<=0){ return 0; } step[0] = 1; step[1] = 1; step[2] = 2; step[3] = 3; step[4] = 5; if(N<=5){ cout<<step[N-1]<<endl; return 0; } for(int i=5;i<N;i++){ step[i]= (step[i-1]+step[i-3]+step[i-5])%100003; } cout<<step[N-1]<<endl; }
上一题 下一题