目录
一、跳台阶扩展问题
(1)原题再现
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
输入
3
输出
4
输入
1
输出
1
(2)问题分析
对于这题网上有很多讲解,也有很多把不同的方法,但在我看来,我这样找出来的规律可能是最简单的,只需要一行直接返回。
一阶台阶:有一种跳法。可以跳的方式:1 结果为:
二阶台阶:有两种种跳法。可以跳的方式:11、2 结果为:
三阶台阶:有四种跳法。可以跳的方式:111、12 、21 、3结果为:
四阶台阶:有八种跳法。可以跳的方式:1111、 112、 121 、13 、211、 22 、31 、4结果为:
……
很容易找出规律n阶台阶对应
种方式。
(3)完整代码
/* * 跳台阶扩展问题 */ public class JumpFloor { public int jumpFloorII (int number) { // write code here return (int) Math.pow(2, number-1); } }
![]()
二、快到碗里来
(1)原题再现
小喵们很喜欢把自己装进容器里的(例如碗),但是要是碗的周长比喵的身长还短,它们就进不去了。现在告诉你它们的身长,和碗的半径,请判断一下能否到碗里去。
输入描述:
输入有多组数据。
每组数据包含两个整数n (1≤n≤2^128) 和r (1≤r≤2^128),分别代表喵的身长和碗的半径。 圆周率使用3.14。
输出描述:
对应每一组数据,如果喵能装进碗里就输出“Yes”;否则输出“No”。
示例1
输入
6 1
7 1
9876543210 1234567890
输出
Yes
No
No
(2)问题分析
这道题应该是一道入门题,就是求圆周长。比较一下就行了
(3)完整代码
import java.util.*; /* * 快到碗里来 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { double num = sc.nextDouble(); double rad = sc.nextDouble(); if (num >= 2 * 3.14 * rad) { System.out.println("No"); } else { System.out.println("Yes"); } } } }