码迷,mamicode.com
首页 > 其他好文 > 详细

作业04

时间:2017-11-03 15:19:02      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:递归、大串中统计小串的个数

1、递归兔子对数练习题

package homework;

import java.util.Scanner;

/* 问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
 *      小兔子长到第三个月后每个月又生一对兔子,假如兔子
 *      都不死,问第二十个月的兔子对数为多少?(使用递归去解决)
 * 分析:
 *                   月份      第一对兔子生的兔子  第二对兔子生的兔子  第三对兔子生的兔子……
 * sum=1              1           0			0			0
 * sum=1              2           0       	        0			0
 * sum=1              3           0			0			0
 * sum=2              4		  1                     0			0
 * sum=3              5           2			0			0
 * sum=4              6		  3			0			0
 * sum=sum+1+(7-6)    7		  4			1			0
 * sum=sum+1+(8-6)    8		  5			2			1    ……
 * ……               ……        ……                  ……                           ……
 * sum=sum+1+(20-6)   20          17                     14                     13      ……  1 
 * sum=sum+1+(N-6)    N           N-3                  N-6                      N-7       ……  1
 *    
 * */

public class RibbitDemo {
	public static void main(String[] args){
		System.out.println("请输入你要统计兔子对数的月份:");
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();	
		System.out.println("第"+n+"月兔子对数是:"+getSum(n));
		
	}
	//得到兔子的对数
    public static int getSum(int n){
    	//原本有一对兔子
    	int sum=1;
    	//如果是第三个月以后,最初的兔子成熟
    	if(n>3){	
    	    for(int i=4;i<=n;i++){
    		    sum++;
    		    //第六个月以后第一胎兔子成熟;
    		    //且以后每月新增加一对兔子成熟
    		    if(i>6){
    		    	sum+=(i-6);//第i月兔子的对数等于前一个月总数+(i-6)
    		    }
    	    }
    	}
    	//返回兔子总对数
		return sum;
    }
}


技术分享


2、统计大串中小串出现的次数

举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出

现了5次

package homework;

import java.util.Scanner;

public class CountDemo {
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个长字符串:");
		String str=sc.nextLine();
		System.out.println("请输入你要找的字符串:");
		String str1=sc.nextLine();
		System.out.println("你所输入的长串中你要找的字符串的个数是:"+getCount(str,str1));
	}
	//定义一个方法来获取要找的字符串的个数
	public static int getCount(String str,String str1){
		//定义一个统计变量
		int count=0;
		int index=0;
		//若长串中不存在你要找的字符串用indexOf();返回-1,则不需要再找了
		while(true){
			//每次循环后,字符串从上一次找到的首地址之后开始找
			index=(str.indexOf(str1,index))+1;
			
			if(index==0)
		     break;
			count++;
		}
		return count;
	}

}


技术分享



作业04

标签:递归、大串中统计小串的个数

原文地址:http://13355940.blog.51cto.com/13345940/1978699

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!