java经典编程题(43-45)

【程序43】题目:计算字符串中子串出现的次数

import java.util.Scanner;
public class Demo1 {
	public static void main(String args[]) {
		Scanner s = new Scanner(System.in);
		System.out.print("请输入字符串:");
		String str1 = s.nextLine();
		System.out.print("请输入子串:");
		String str2 = s.nextLine();
		int count = 0;
		if (str1.equals("") || str2.equals("")) {
			System.out.println("你没有输入字符串或子串,无法比较!");
			System.exit(0);
		} else {
			for (int i = 0; i <= str1.length() - str2.length(); i++) {
				if (str2.equals(str1.substring(i, str2.length() + i)))
					// 这种比法有问题,会把"aaa"看成有2个"aa"子串。
					count++;
			}
			System.out.println("子串在字符串中出现: " + count + " 次");
		}
	}
}

【运行结果】

请输入字符串:abcdjsaaabcbsaaadda

请输入子串:aa

子串在字符串中出现: 4 次



【程序44】题目:计算圆周率 PI44/3+4/5-4/7.......打印出第一个大于 3.1415小于 3.1416的值


public class Main {

	public static void main(String[] args) {
		double pi = 0;
		double fenZi = 4;
		double fenMu = 1;
		while(!(pi>3.1415&&pi<3.1416)){
			pi += (fenZi / fenMu);
			fenZi *= -1.0;
			fenMu += 2.0;
		}
		System.out.println(pi);
	}

}

【运行结果】

3.1415000095284658

 



【程序45】题目:输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值,其中前9个数: 1  1  2  3  5  8  13  21  34

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		for (int i = 1; i <= n; i++) {
			print(i);
		}
	}
	public static void print(int n) {
		int n1 = 1;// 第一个数
		int n2 = 1;// 第二个数
		int sum = 0;// 和
		if (n <= 0) {
			System.out.println("参数错误!");
			return;
		}
		if (n <= 2) {
			sum = 1;
		} else {
			for (int i = 3; i <= n; i++) {
				sum = n1 + n2;
				n1 = n2;
				n2 = sum;
			}
		}
		System.out.println(sum);
	}
}

【运行结果】

10

1

1

2

3

5

8

13

21

34

55



你可能感兴趣的:(java,二级,编程题)