700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。

时间:2018-07-17 13:16:00

相关推荐

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例:

我在网上看到很多类似的题,但是发现大多数只是算出排列组合的个数没有具体输出每种排列组合。所以用java简单实现了一下,新手勿喷。

代码如下:

public static void main(String[] args){Scanner input=new Scanner(System.in);System.out.print("请输入一个正整数:");List<Integer> list =new ArrayList<Integer>();int a=input.nextInt();int i=0;while(i<=a){int a2=0;int ac=(a-i)%2;if(ac==0){a2=(a-i)/2;arrange(i,a2,"");}else{a2=(a-i)/2;i++;arrange(i,a2,"");}i++;}}public static void arrange(int a1, int a2, String s){if(a1==0&&a2==0){if(!s.equals("")){System.out.println(s.substring(0,s.length()-1));}}else {if(a1>0){arrange(a1-1,a2,s+"1阶+");}if(a2>0){arrange(a1,a2-1,s+"2阶+");}}}

先在main方法里算出走一阶与走二阶的个数组合,再将其传到arrange方法中利用递归将所有排列组合用字符串拼接好并输出。

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。