java经典编程题(43-45)

本文通过三个具体的编程案例,展示了如何使用Java解决实际问题,包括计算字符串中子串出现次数、求圆周率近似值以及计算斐波那契数列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【程序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



1.输出所有的“水仙花数”,水仙花数是指一个三位数,这个数的各位数字的立方和就是该数本身。 2.将一个正整数分解质因数,如:18=2*3*3; 3.输入两个正整数,求这两个数的最大公约数和最小公倍数; 4.输入一行字符,统计其中英文字母,空格,数字和其他字符的个数; 5.一个整数加上100后是个完全平方数,加上168后也是一个完全平方数,求这个数; 6.输出9*9口诀; 7.两个乒乓球队比赛,各出三人,甲队抽签派出a,b,c三人,乙队派出x,y,z三人,已知a不和x比,c不和x,z比,编程求出对战情况; 8.打印出如下图形: * *** ***** ******* ***** *** * 9.给一个不多于五位的正整数,求它是几位数,逆序输出它的各位数字; 10.请输入星期几的第一个字母来判断是星期几,如果一样,则判断第二个字母; 11.求一个3*3矩阵对角线元素之和; 12.有一个已经排好序的数组,先输入一个数,按原先的顺序插入其中; 13.取一个整数a从右端开始的4~7位; 14.打印出杨辉三角形前十行,如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 ...................... 15.输入数组,最大的与第一个交换,最小的数与最后一个数交换,输出数组; 16.输入n个数,使其前m个数向后移动m个位置,最后面的m个数移到最前面; 17.有n个人围成一个圈子,从第一个人开始报数,报到3的退下,问最后留下的是编号为几的人; 18.字符串排序; 19.海滩上有一堆桃子,五只猴子来分,第一只猴子均分成5份,多出一个,扔进海里,自己拿走一份,第二三四五只猴子均这样做,问海滩上最初至少有多少个桃子; 20.求0~7所能组成的奇数的个数; 21.一个偶数总能表示成两个素数的和,输出所有可能的素数对; 22.两个字符串连接程序; 23.有5个同学,每个同学有三门课成绩,从键盘输入学号,姓名和三门课的成绩,取平均数,将数据存放在磁盘文件stud中; 24.如果一个数恰好等于它的因子之和,则叫“完数”求1000以内所有完数;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值