蓝桥杯-Excel地址[Java]

目录:

学习目标:

学习内容:

学习时间:

题目:

题目描述:

输入描述:

输出描述:

输入输出样例:

[示例 1:](#示例 1:)

运行限制:

题解:

思路:


学习目标:

  • 刷蓝桥杯题库日记

学习内容:

  • 编号96
  • 题目Excel地址
  • 难度困难

学习时间:

  • 2023/12/26 10:45

题目:

题目描述:

Excel 单元格的地址表示很有趣,它使用字母来表示列号。

比如,

A 表示第 1 列,

B 表示第 2 列,

Z 表示第 26 列,

AA 表示第 27 列,

AB 表示第 28 列,

BA 表示第 53 列,

......

当然 Excel 的最大列号是有限度的,所以转换起来不难。

如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?

本题目即是要求对输入的数字, 输出其对应的 Excel 地址表示方式。

输入描述:

输入一个整数n,其范围 [1,2147483647]。

输出描述:

输出n对应的 Excel 地址表示方式。

输入输出样例:

示例 1:

输入:

复制代码
26

输出:

复制代码
Z

运行限制:

  • 最大运行时间:1s
  • 最大运行内存: 256M

题解:

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = 0;
        n = scan.nextInt();
        scan.close();
        StringBuilder builder = new StringBuilder();
        while(n > 0) {
            builder.append((char)('A' + ((--n)%26)));
            n /= 26;
        }
        builder.reverse();
        System.out.println(builder);
    }
}

思路:

  • 用StingBuilder进行拼接,关于StringBuilder的使用可见http://t.csdnimg.cn/wCNry
  • 之前想的是('A' + ((n - 1) % 26)),后来发现脑子混了一下,到676的时候会出现错误。
  • 而用--n是让多出来的1减去(因为1对应的是A而不是0对应的A,而算法中是以'A'为起点加上取余值),这样才能对应的上。
相关推荐
开源之眼30 分钟前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
CoovallyAIHub37 分钟前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界
深度学习·算法·计算机视觉
CoovallyAIHub1 小时前
仅凭单目相机实现3D锥桶定位?UNet-RKNet破解自动驾驶锥桶检测难题
深度学习·算法·计算机视觉
zone77391 小时前
002:RAG 入门-LangChain 读取文本
后端·算法·面试
Maori3161 小时前
放弃 SDKMAN!在 Garuda Linux + Fish 环境下的优雅 Java 管理指南
java
得物技术2 小时前
得物社区搜推公式融合调参框架-加乘树3.0实战
算法
用户908324602732 小时前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
小王和八蛋2 小时前
DecimalFormat 与 BigDecimal
java·后端
beata2 小时前
Java基础-16:Java内置锁的四种状态及其转换机制详解-从无锁到重量级锁的进化与优化指南
java·后端
IT探险家2 小时前
你的第一个 Java 程序就翻车?HelloWorld 的 8 个隐藏陷阱
java