长春大学20级第十三周第一次上机(5月24号)

(一)题目描述

分别使用String和Stringbuffer实现字符串的反转。

public class Main{
	public static void main(String[] args){
		String a = "abcd";
		char[] c = a.toCharArray();
		System.out.print("使用String反转:");
		for(int i = c.length;i>0;i--){
			System.out.print(c[i-1]);
		}
		System.out.println();
		StringBuffer sb = new StringBuffer("abcd");
		sb.reverse();
		System.out.print("使用StringBuffer反转:");
		System.out.println(sb);
	}
}

(二)题目描述

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入月份:");
        String str = sc.nextLine(); 
        int month = Integer.valueOf(str);
        int sum = fibonacci(month); 
        System.out.println(sum);
    }
    public static int fibonacci(int month){
        if((month) == 1 || (month == 2)){
            return 1;
        }else{
            return fibonacci(month -1) + fibonacci(month-2);
        }  
    }
}

(三)题目描述

判断一个字符串是否对称。

例如 abc 不对称,aaaabbbb对称。

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("请输入字符串:");
		String str = input.next();
		method(str);
	}
		public static void method(String str){
			boolean result = true;
			int count =(str.length()-1)/2;
			for (int i = 0; i <= count; i++ ){
				if(str.charAt(i) != str.charAt(str.length() - 1 - i)){
					result = false;
					break;
				}
			}
			if(!result){
				System.out.println("该字符串是不对称的");
			}
			else{
				System.out.println("该字符串是对称的");
			}
		}
}

(四)题目描述

利用Randon实现随机出四则运算题,随机出10个四则运算。

import java.util.Random;
public class Main {
	public static void main(String[] args) {
		String[] operate = new String[]{"+","-","×","÷"};
		int[] numbers = new int[1000];
		for(int i = 1; i <= 1000; i++){
			numbers[i - 1] = i;
		}
		Random r = new Random();
		for(int i = 0; i < 10; i++){
			System.out.println(numbers[r.nextInt(1000)] + operate[r.nextInt(4)] + numbers[r.nextInt(1000)] + "=");
		}
	}
}

(五)题目描述

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」定义为:

对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。

然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。

如果 可以变为  1,那么这个数就是快乐数。

如果 n 是快乐数就返回 true ;不是,则返回 false 。

示例 1:

输入:19

输出:true

解释:

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		System.out.print("请输入一个数:");
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		System.out.println(isHappy(n));
	}
	public static boolean isHappy(int n) {
        if(n == 1){
			return true;
		}
		if(n < 1){
			return false;
		}
		int count = 0;
		while(n != 1){
			String s = n + "";
			char[] arr = s.toCharArray();
			int sum = 0;
			for(int i = 0; i < arr.length; i++){
				sum += Integer.parseInt(arr[i] + "") * Integer.parseInt(arr[i] + "");
			}
			n = sum;
			count++;
			if(count > 1000){
			    return false;
			}
		}
		return true;
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小成同学_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值