Java 代码实现数字处理游戏:颠三倒四、年轻人不讲武德、溜翻了、逢七得过
Java 代码实现数字处理游戏:颠三倒四、年轻人不讲武德、溜翻了、逢七得过
这是一个趣味的小题目:你将获得一串数字,请将这段数字按照以下规则处理:颠三倒四,年轻人不讲武德(五),溜(六)翻了,逢七得过。然后输出。
**关于颠三倒四:**对于任意一个 '3',如果在它之后遇到了一个 '4',则将这一对数字对调。若有一个 '4' 之前出现了多个 '3',则选择最近的那个完成对调。
输入格式
一串数字,是处理前的数字
输出格式
一串数字,处理过后的数字
**内容:**以下是根据您的要求使用Java编写的代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String result = processNumbers(input);
System.out.println(result);
scanner.close();
}
public static String processNumbers(String input) {
char[] digits = input.toCharArray();
int len = digits.length;
for (int i = 0; i < len - 1; i++) {
if (digits[i] == '3' && digits[i + 1] == '4') {
swapDigits(digits, i, i + 1);
i++; // 跳过已处理的4
}
}
for (int i = len - 1; i >= 0; i--) {
if (digits[i] == '3') {
int j = i - 1;
while (j >= 0 && digits[j] == '3') {
j--;
}
if (j >= 0 && digits[j] == '4') {
swapDigits(digits, j, i);
}
}
}
for (int i = 0; i < len; i++) {
if (digits[i] == '6') {
digits[i] = '9';
} else if (digits[i] == '9') {
digits[i] = '6';
}
}
StringBuilder sb = new StringBuilder();
for (char digit : digits) {
sb.append(digit);
}
return sb.toString();
}
public static void swapDigits(char[] digits, int i, int j) {
char temp = digits[i];
digits[i] = digits[j];
digits[j] = temp;
}
}
运行以上代码,程序将等待用户输入一串数字,并将经过处理后的结果输出。
示例输入1:
347
示例输出1:
437
示例输入2:
334437
示例输出2:
344937
示例输入3:
769
示例输出3:
699
希望对您有帮助!
原文地址: https://www.cveoy.top/t/topic/bRbM 著作权归作者所有。请勿转载和采集!