zoukankan      html  css  js  c++  java
  • Java实现统计方案

    统计方案
    题目描述
    在一无限大的二维平面中,我们做如下假设:
    1、每次只能移动一格;
    2、不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);
    3、走过的格子立即塌陷无法再走第二次。
    求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。
    输入

    首先给出一个正整数C,表示有C组测试数据。
    接下来的C行,每行包含一个整数n(n<=20),表示要走n步。
    输出

    请编程输出走n步的不同方案总数;
    每组的输出占一行。
    样例输入
    2
    1
    2
    样例输出
    3
    7

    import java.util.Scanner;
    
    public class 统计问题 {
    	/*
    	 * a(i)= a(i - 1)+ b(i - 1)                    b(i)= a(i - 1)* 2 + b(i - 1)
    	f (i) 
    	= a(i)+ b(i)
    	= 3 * a(i - 1)+ 2 * b(i - 1)
    	= 2 * f(i - 1)+ a(i - 1)
    	= 2 * f(i - 1)+ a(i - 2)+ b(i - 2)
    	= 2 * f(i - 1)+ f (i - 2) //递推公式这就得出来了
    	 * */
    	public static void main(String[] args) {
    		int [] num = new int [21];
    		num[1]=3;
    		num[2]=7;
    		num[3]=17;
    		for (int i = 4; i <21; i++) {
    			num[i]=2*num[i-1]+num[i-2];
    		}
    		
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		while(n-->0){
    			System.out.println(num[sc.nextInt()]);
    		}
    	}
    
    }
    
    
    
  • 相关阅读:
    LPC2478中断控制器以及串口详解
    有效三角形的个数
    小于K的两数之和
    和至少为K的最短子数组
    docker: 构建自己的镜像
    判断字符串是否是异位词
    找出字符串中的最长回文
    knuth洗牌算法
    使用adb命令控制anroid手机
    bitmap以及异或运算法
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074385.html
Copyright © 2011-2022 走看看