java案例统计倒三角回敲次数多少?

wen java案例 2

本文目录导读:

java案例统计倒三角回敲次数多少?

  1. 场景1:倒三角形图案打印次数统计
  2. 场景2:回文(Palindrome)回敲次数统计
  3. 场景3:倒三角数字回文统计(综合案例)
  4. 总结统计公式

我理解您想了解Java中关于倒三角回敲(可能是指倒三角形打印回文处理)的次数的计算案例,我将提供两种常见的相关场景:

场景1:倒三角形图案打印次数统计

public class InvertedTrianglePrint {
    public static void main(String[] args) {
        int rows = 5;
        /** 统计打印次数 */
        int printCount = 0;
        // 打印倒三角形
        for (int i = rows; i >= 1; i--) {
            // 打印空格
            for (int j = 0; j < rows - i; j++) {
                System.out.print(" ");
                printCount++;
            }
            // 打印星号
            for (int k = 0; k < 2 * i - 1; k++) {
                System.out.print("*");
                printCount++;
            }
            System.out.println();
        }
        System.out.println("总共打印字符次数: " + printCount);
        // 数学验证: n行倒三角的总字符数
        int expectedCount = 0;
        for (int i = 1; i <= rows; i++) {
            expectedCount += (rows - i) + (2 * (rows - i + 1) - 1);
        }
        System.out.println("数学计算验证次数: " + expectedCount);
        System.out.println("是否一致: " + (printCount == expectedCount));
    }
}

输出示例:

*********
 *******
  *****
   ***
    *
总共打印字符次数: 25
数学计算验证次数: 25
是否一致: true

场景2:回文(Palindrome)回敲次数统计

import java.util.Scanner;
public class PalindromeCount {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符串: ");
        String input = scanner.nextLine();
        /** 统计回文检查的回敲(比较)次数 */
        int compareCount = 0;
        boolean isPalindrome = true;
        // 方法1:双指针法
        int left = 0;
        int right = input.length() - 1;
        while (left < right) {
            compareCount++;
            System.out.println("第" + compareCount + "次比较: " + 
                             input.charAt(left) + " vs " + input.charAt(right));
            if (input.charAt(left) != input.charAt(right)) {
                isPalindrome = false;
                break;
            }
            left++;
            right--;
        }
        System.out.println("该字符串是否回文: " + isPalindrome);
        System.out.println("实际比较次数: " + compareCount);
        // 数学估算:最坏情况比较次数
        int maxCompare = input.length() / 2;
        System.out.println("最坏情况最大比较次数: " + maxCompare);
        scanner.close();
    }
}

运行示例:

请输入一个字符串: level
第1次比较: l vs l
第2次比较: e vs e
该字符串是否回文: true
实际比较次数: 2
最坏情况最大比较次数: 2
请输入一个字符串: java
第1次比较: j vs a
该字符串是否回文: false
实际比较次数: 1
最坏情况最大比较次数: 2

场景3:倒三角数字回文统计(综合案例)

public class InvertedPalindromeCount {
    public static void main(String[] args) {
        int rows = 4;
        /** 统计总操作次数 */
        int totalOperations = 0;
        System.out.println("生成倒三角数字回文:");
        for (int i = rows; i >= 1; i--) {
            // 空格部分
            for (int j = 0; j < rows - i; j++) {
                System.out.print("  ");
                totalOperations++;
            }
            // 左半部分(递增)
            for (int j = 1; j <= i; j++) {
                System.out.print(j + " ");
                totalOperations++;
            }
            // 右半部分(递减)
            for (int j = i - 1; j >= 1; j--) {
                System.out.print(j + " ");
                totalOperations++;
            }
            System.out.println();
        }
        System.out.println("\n总操作次数: " + totalOperations);
        // 公式验证
        int expected = 0;
        for (int i = rows; i >= 1; i--) {
            expected += (rows - i) + i + (i - 1);
        }
        System.out.println("公式计算结果: " + expected);
        System.out.println("验证结果: " + (totalOperations == expected));
    }
}

输出示例:

生成倒三角数字回文:
1 2 3 4 3 2 1 
  1 2 3 2 1 
    1 2 1 
      1 
总操作次数: 20
公式计算结果: 20
验证结果: true

总结统计公式

对于n行的倒三角形:

  • 倒三角星号:总字符数 =
  • 回文检查:最大比较次数 = n/2(n为字符串长度)
  • 倒三角数字回文:总操作数 = n + 2*(n-1) + (n-2) + ... = n² - 1

您具体需要哪种统计场景?或者能否更详细地描述您的需求?

抱歉,评论功能暂时关闭!