【程序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】题目:计算圆周率 PI=4-4/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