不死神兔
需求:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子都不会死,问第二十个月的兔子对数为多少。
public class Test_9 {
public static void main(String[] args) {
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
System.out.println("第二十个月兔子的对数是:" + arr[arr.length - 1]);
}
}
逢七过
规则:从任意一个数字开始报数,到包含7或者是7的倍数时说:过。
打印1-100之间满足逢七过规则的数据。
public class Test_9 {
public static void main(String[] args) {
for (int i = 1;i<=100;i++){
if (i%10==7||i/10%10==7||i%7==0){
System.out.println(i+"过");
}else {
System.out.println(i);
}
}
}
}
减肥计划
需求:输入星期数,显示今天的减肥活动。
用if分支实现。
import java.util.Scanner;
public class Test_9 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请输入一个数:");
int a = sc.nextInt();
if (a==1){
System.out.println("游泳");
}else if(a==2){
System.out.println("跑步");
}else if(a==3){
System.out.println("慢走");
}else if(a==4){
System.out.println("单车");
}else if(a==5){
System.out.println("拳击");
}else if(a==6){
System.out.println("爬山");
}else if(a==7){
System.out.println("干饭");
}else{
System.out.println("输入有误,请重新输入!");
}
}
}
}
用switch case实现:
import java.util.Scanner;
public class Test_9 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true){
System.out.print("请输入星期数:");
int i = sc.nextInt();
switch (i){
case 1:
System.out.println("游泳");
break;
case 2:
System.out.println("跑步");
break;
case 3:
System.out.println("慢走");
break;
case 4:
System.out.println("单车");
break;
case 5:
System.out.println("爬山");
break;
case 6:
System.out.println("拳击");
break;
case 7:
System.out.println("干饭");
break;
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
}
百钱百鸡
公鸡一只五块钱,母鸡一只三块钱,小鸡三只一块钱,一百块钱可以买多少只公鸡母鸡和小鸡。
public class Test_9 {
public static void main(String[] args) {
for (int x = 0; x <= 20; x++) {
for (int y = 0; y <= 33; y++) {
int z = 100 - x - y;
if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
System.out.println(x +"," +y +","+ z);
}
}
}
}
}
数组元素求和
需求:有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和。
要求:求和的元素个位和十位都不能是7,并且只能是偶数。
public class Test_9 {
public static void main(String[] args) {
int [] arr = {68,27,95,88,171,996,51,210};
int num = 0;
for (int i = 0;i<arr.length;i++){
if (arr[i] %10!=7&& arr[i] /10%10!=7&& arr[i] %2==0){
num += arr[i] ;
}
}
System.out.println(num);
}
}
判断数组内容相同
需求:设计一个方法,用于比较两个数组的内容是否相同。
public class Test_9 {
public static void main(String[] args) {
int [] arr = {11,22,33,44,55,66,77,88,99};
int [] arr1 = {11,22,33,44,55,66,77,88,99};
boolean a = getArr(arr,arr1);
public static boolean getArr(int [] arr,int [] arr1){
if (arr.length !=arr1.length){
return false;
}
for (int i = 0;i<arr.length;i++){
if (arr[i] != arr1[i]){
return false;
}
}
return true;
}
} System.out.println(a);
}
查找
需求:已知一个数组arr={19,28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并输出找到的索引值。
import java.util.Scanner;
public class Test_9 {
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
Scanner sc = new Scanner(System.in);
System.out.print("请输入需要查找的数字:");
int number = sc.nextInt();
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == number) {
index = i;
break;
}
}
System.out.println("所查数字的下标为:" + index);
}
}
数组元素交换
需求:已知一个数组 arr={19,28,37,46,50};实现把数组中的元素值交换;
定义一个遍历数组的方法实现打印。
public class Test_9 {
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ", ");
}
System.out.println();
int temp = 0;
for (int start = 0,end = arr.length-1; start <= end; start++, end--) {
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
changerArr(arr);
/*for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ", ");
}*/
}
public static void changerArr(int [] arr){
for (int i = 0;i<arr.length;i++){
System.out.print(arr[i]+", ");
}
}
}
评委打分
需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后的四个评委的平均值(不考虑小数部分)。
import java.util.Scanner;
public class Test_9 {
public static void main(String[] args) {
int [] arr = new int [6];
for (int i = 0;i<arr.length;i++){
Scanner sc = new Scanner(System.in);
System.out.print("请输入第"+(i+1)+"名的分数:");
arr [i]= sc.nextInt();
}
int num = Max(arr);
System.out.println("最高分是:"+num);
Bit(arr);
System.out.println("最低分是:"+Bit(arr));
Add(arr);
System.out.println("分数和是:"+Add(arr));
num = (Add(arr)-Max(arr)-Bit(arr))/4;
System.out.println("平均分是:"+num);
}
public static int Max(int [] arr){
int max = arr[0];
for (int i = 0;i<arr.length;i++){
if (max<arr[i]){
max = arr[i];
}
}
return max;
}
public static int Bit(int [] arr){
int bit = arr[0];
for (int i = 0;i<arr.length;i++){
if (bit>arr[i]){
bit = arr[i];
}
}
return bit;
}
public static int Add(int [] arr){
int sum = 0;
for (int i = 0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
}
类的创建和使用
public class Phone {
//成员变量
String brand;
int price;
//成员方法
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
public class PhoneDemo {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//使用成员变量
System.out.println(p.price);
System.out.println(p.brand);
p.brand = "Iphone";
p.price = 5999;
System.out.println(p.price);
System.out.println(p.brand);
p.call();
p.sendMessage();
}
}
用户登录
需求:已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登陆之后,给出相应的提示。
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
String admin = "123456";
String password = "123456";
Scanner s1 = new Scanner(System.in);
Scanner s2 = new Scanner(System.in);
for (int i = 1; i <= 3; i++) {
System.out.print("请输入用户名:");
String adMin = s1.nextLine();
System.out.print("请输入密码:");
String passWord = s2.nextLine();
if (admin.equals(adMin) && password.equals(passWord)) {
System.out.println("登录成功!");
break;
} else {
if (3 - i == 0) {
System.out.println("账号或密码错误,欢迎下次使用!");
} else {
System.out.println("用户名或密码错误,你还有" + (3 - i) + "次机会");
}
}
}
}
}
遍历字符串
需求:键盘录入一个字符串,使用程序实现现在控制台遍历该字符串
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String line = sc.nextLine();
for (int i=0;i<line.length();i++){
System.out.print(line.charAt(i)+"、 ");
}
System.out.println();
System.out.println("字符串的长度为:"+ line.length() +"个字符");
}
}
统计字符次数
需求:键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String line = sc.nextLine();
int a1 = 0;//大写字母
int a2 = 0;//小写字母
int a3 = 0;//数字
for (int i = 0;i<line.length();i++){
//System.out.println(line.charAt(i));
if (line.charAt(i)>='A'&&line.charAt(i)<='Z'){
a1++;
}else if(line.charAt(i)>='a'&&line.charAt(i)<='z'){
a2++;
}else if (line.charAt(i)>='0'&&line.charAt(i)<='9'){
a3++;
}
}
System.out.println("该字符串大写字母有"+a1+"个!");
System.out.println("该字符串小写字母有"+a2+"个!");
System.out.println("该字符串数字有"+a3+"个!");
}
拼接字符串
需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法并在控制台输出结果。
例如:数组为int[]arr={1,2,3};执行方法后的输出结果为:[1,2,3]
public class StudentDemo {
public static void main(String[] args) {
int [] ch = {1,2,3,4,5,6};
String ch1 = Changer(ch);
System.out.println(Changer(ch));
}
public static String Changer(int [] arr){
String sr = "";
sr+='[';
for (int i = 0;i<arr.length;i++){
if (i==arr.length-1){
sr+=arr[i];
}else {
sr+=arr[i];
sr+=", ";
}
}
sr+=']';
return sr;
}
}
字符串反转
需求:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果。
例如:输入录入abc,输出结果cba
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String line = sc.nextLine();
String s = Changer(line);
System.out.println(s);
}
public static String Changer(String sc){
String s ="";
for (int i = sc.length()-1;i>=0;i--){
s += sc.charAt(i);
}
return s;
}
}
StringBuilder实现拼接字符串
需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
例如:数组为int[]arr = {1,2,3},执行方法后的输出结果为:[1,2,3]
public class StudentDemo {
public static void main(String[] args) {
int [] arr = {1,2,3,4,5,6};
String s = arrtoString(arr);
System.out.println(s);
}
public static String arrtoString(int [] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0;i<arr.length;i++){
if (i==arr.length-1){
sb.append(arr[i]);
}else {
sb.append(arr[i]).append(", ");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
存储学生对象并遍历
需求:创建一个存储对象的集合,存储三个学生对象,使用程序实现在控制台遍历该集合,学生的姓名和年龄来自于键盘录入。
首先先创建一个学生的类:
public class Student {
private String name;
private String age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(String age){
this.age = age;
}
public String getAge(){
return age;
}
public Student(){
}
/*public Student(String name){
this.name = name;
}
public Student(String age){
this.age = age;
}*/
public Student(String name,String age){
this.name = name;
this.age = age;
}
public void show(){
System.out.println(name+", "+age);
}
}
然后下面是代码实现
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<>();
addStudent(array);
addStudent(array);
addStudent(array);
for (int i = 0;i <array.size();i++){
Student s = array.get(i);
System.out.println(s.getName()+", "+s.getAge());
}
}
public static void addStudent(ArrayList <Student> array){
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生姓名:");
String name = sc.nextLine();
System.out.print("请输入学生年龄:");
String age = sc.nextLine();
Student s = new Student();
s.setName(name);
s.setAge(age);
array.add(s);
}
}