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

希望对您有帮助!

Java 代码实现数字处理游戏:颠三倒四、年轻人不讲武德、溜翻了、逢七得过

原文地址: https://www.cveoy.top/t/topic/bRbM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录