1. 求和
设计一个方法,用于计算整数的和
package swp.kaifamiao.codes.Java.d0810;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
// ## 求和
// 设计一个方法,用于计算整数的和
public class Text01 {
// 被调函数
public static int integer (){
int sum = 0;
int[] arr = {2, 5, 13, 9, 12, 7};
for (int i = 0; i < arr.length; i++){
sum += arr[i];
}
return sum;
}
// 主调函数
public static void main(String[] args) {
int result = integer();
System.out.println("整数的和是:" + result);
}
}
2.阶乘
编写一个方法,接受一个正整数作为参数,并返回它的阶乘
package swp.kaifamiao.codes.Java.d0810;
import com.sun.tools.javac.Main;
import java.util.Scanner;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
// 阶乘
// 编写一个方法,接受一个正整数作为参数,并返回它的阶乘
public class Text02 {
// 被调函数
public static int factorial(int num){
int result = 1;
for (int i = 1; i <= num; i++){
result *= i;
}
return result;
}
//主调函数
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输出一个正整数n:");
int num = in.nextInt();
int result = factorial(num);
System.out.println("阶乘是:" + result);
}
}
3.判断素数
编写一个方法,接受一个整数作为参数,并判断它是否为素数(质数)
package swp.kaifamiao.codes.Java.d0810;
import java.util.Scanner;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
// 判断素数
// 编写一个方法,接受一个整数作为参数,并判断它是否为素数(质数)
public class Text03 {
//被调函数
public static boolean isPrime(int num){
if (num <= 0){
return false;
}
for (int i = 2; i * i <= num; i++){
if (num % i == 0){
return false;
}
}
return true;
}
//主调函数
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = in.nextInt();
boolean isPrime = isPrime(num);
if (isPrime){
System.out.println("是素数!");
}else {
System.out.println("不是素数!");
}
}
}
4.翻转数组
编写一个方法,接受一个字符数组,将其翻转并输出。
package swp.kaifamiao.codes.Java.d0810;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
// 翻转数组
// 编写一个方法,接受一个字符数组,将其翻转并输出。
public class Text04 {
//被调函数
public static void reverseChar(char[] arr){
int left = 0;
int right =arr.length-1;
while (left < right){
char temp = arr[right];
arr[right] = arr[left];
arr[left] = temp;
left ++;
right --;
}
}
//主调函数
public static void main(String[] args) {
char[] arr = {'0', '2', '5', '4', '1', '3', '1'};
reverseChar(arr);
System.out.println("翻转后的数组为:");
for (int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
5.回文数
编写一个方法,接受一个整数作为参数,判断它是否为回文数(正着读和倒着读都一样)
package swp.kaifamiao.codes.Java.d0810;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
//回文数
//编写一个方法,接受一个整数作为参数,判断它是否为回文数(正着读和倒着读都一样)
import java.util.Scanner;
public class Text05 {
//被调函数
public static boolean isPalindromic(int num) {
// 将整数转换为字符串
String str = Integer.toString(num);
//使用双指针判断
int left = 0;
int right = str.length() - 1;
while (left < right){
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
//主调函数
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = in.nextInt();
boolean result = isPalindromic(num);
System.out.println(result);
}
}
6.交换元素位置
编写一个方法,接受一个整数数组和两个索引作为参数,交换数组中指定索引位置的两个元素。
package swp.kaifamiao.codes.Java.d0810;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
// 交换元素位置
// 编写一个方法,接受一个整数数组和两个索引作为参数,交换数组中指定索引位置的两个元素。
public class Text06 {
public static void swap(int[] arr, int index1, int index2) {
// 判断索引是否有效
if (index1 < 0 || index1 >= arr.length || index2 < 0 || index2 >= arr.length) {
System.out.println("索引无效,无法进行交换。");
return;
}
// 交换两个索引位置的元素
int temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int index1 = 1;
int index2 = 3;
System.out.println("交换前的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
swap(arr, index1, index2);
System.out.println("交换后的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
}
7.数组元素左移
编写一个方法,接受一个整数数组和一个正整数 k 作为参数,将数组中的元素左移 k 个位置。
package swp.kaifamiao.codes.Java.d0810;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
// 数组元素左移
// 编写一个方法,接受一个整数数组和一个正整数 k 作为参数,将数组中的元素左移 k 个位置。
public class Text07 {
public static void rotateLeft(int[] arr, int k) {
int n = arr.length;
// 对 k 取模,防止 k 大于数组长度时重复移动
k = k % n;
// 反转前半部分
reverse(arr, 0, k - 1);
// 反转后半部分
reverse(arr, k, n - 1);
// 整体反转数组
reverse(arr, 0, n - 1);
}
// 辅助方法:反转数组指定区间内的元素
private static void reverse(int[] arr, int start, int end) {
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int k = 2;
System.out.println("移动前的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
rotateLeft(arr, k);
System.out.println("移动后的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
}