目录:

学习目标:

学习内容:

学习时间:

题目:

题目描述:

输入描述:

输出描述:

输入输出样例:

示例 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

题解:

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'为起点加上取余值),这样才能对应的上。

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: