SOJ4453 Excel列数 进制转换

描述

我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA。

假设给定一个正整数n,你能给出它所对应的字母表示么?

输入格式

程序需要读入多个测试样例,每个测试样例中:

一个正整数n(0 < n < 200000)

输出格式

对每个测试样例:

所对应的字母表示

样例输入

26
171135

样例输出

Z
ISDC

资源约定

峰值内存消耗 < 256M

CPU消耗 < 2000ms



请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

[C]

注意: main函数需要返回0

注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。

[Java]

注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

Author

imcmy

AC代码:
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
#include <queue>
#include <map>
#include <math.h>
using namespace std;
typedef long long ll;
const int maxn = 1000 + 5;
const int mods = 1e9 + 7;

int num[20000];

int main(){
    int n;
    while(scanf("%d",&n)==1){
        if(n<=26){
             printf("%c\n",‘A‘+n-1);
             continue;
        }
        int len=0;
        while(n!=0){
            num[len]=(n%26-1);
            if(num[len]==-1)num[len]=25;
            if(n%26==0)n=n/26-1;
            else n=n/26;
            len++;
        }
        for(int i=len-1;i>=0;i--){
            printf("%c",‘A‘+num[i]);
        }
        printf("\n");
    }
    return 0;
}

原文地址:https://www.cnblogs.com/87hbteo/p/9125617.html

时间: 2024-11-05 12:33:41

SOJ4453 Excel列数 进制转换的相关文章

oj---九度oj----大数---进制转换

struct bigInteger{ int digit[maxDigits]; int size; } 这里digit每一位的权重都乘以10000: 如果不是特别大的数,没必要:乘以10000后,把字符串转化为数字比较麻烦 #include<cstdio> #include<cstring> #define maxDigits 100 struct bigInteger{ int digit[maxDigits]; int size; void init(){ for(int i

1. 硬件基本认知 ; 进制转换 2019-10-27

1.1 计算机硬件基本认知 cpu: 中央处理器. 相当于人的大脑.运算中心,控制中心. 内存: 临时存储数据. 优点:读取速度快. 缺点:容量小,造价高,断电即消失. 硬盘: 长期存储数据. 优点:容量大,造价相对低,断电不消失. 缺点:读取速度慢. 操作系统:统一管理计算机软硬件资源的程序 1.2 计算机文件大小单位 b = bit  位(比特) B = Byte 字节 ? 1Byte = 8 bit  一个字节等于8位 可以简写成 1B = 8b 1KB = 1024B 1MB = 102

【leetcode 进制转换】Excel Sheet Column Title

1.题目 Given a positive integer, return its corresponding column title as appear in an Excel sheet. For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 2.分析 excel中的序是这样排的:A~Z,AA~ZZ,AAA~ZZZ....... 本质是进制转换,将n转化为26进制,转化过程如下(括号里的是2

hdu2097 nyoj414 sky数 (进制转换)

Sky number 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 key天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22.key非常喜欢这种四位数(三种进制的和相等),由于他的发现,所以这里我们命名其为key数.但是要判断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进

CodeForces 1B-字符串,进制转换与数学

一个萌新的成长之路 Background 同学们都回家了,只有我和wjh还有邢神在机房敲代码,吃random口味的方便面-- Description Translated by @PC_DOS from luogu In the popular spreadsheets systems (for example, in Excel) the following numeration of columns is used. The first column has number A, the se

C#——进制转换!

进制转换 No.1 其他进制转十进制——按权展开相加法   即: 由于101.11(10),可写成1X102+0X101+1X100+1X10-1+1X10-2,即(以10为底的乘幂展开式)称按权展开式, 其中:101.11称为“数码” 数制中的(10)称为“基数” 数码中每个位数所具有的值称为“权” 那么其他进制也可写成按权展开式 如:对数字“101.11”的不同进制记数方式为~ 十进制表示为:  101.11(10) 二进制表示为:  101.11(2) 八进制表示为:  101.11 (8

编程算法基础-2.3进制转换

2.3进制转换 使用int存一个整数时.内存中是用二进制存储的,当要显示的时候.用十进制显示. 随意进制间的转换 n进制转m进制 String s = "2001201102" 3进制转换为5进制 先转换为2进制.再转换为5进制 /* 随意进制间的转换 n进制转m进制 String s = "2001201102" 3进制转换为5进制 先转换为10进制,再转换为5进制 */ package BinaryTrans; public class NToM { publi

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

计算机进制转换

一.计算机只认识0和1,二进制. 二.2进制转换成 8进制 和 16进制,如下图: 二进制 > 八进制 :  研究上图发现,3位最高二进制可以用来表示一位八进制.所以,将二进制分解每3位,不够前面补0,然后每3位转换为10进制,顺序排列即可. 二进制 > 十六进制  :4位最高二进制可以用来表示一位十六进制.所以,将二进制分解每4位,不够前面补0,然后每4位转换为10进制,超过9用字母表示即可.顺序排列即可. 如下: 二进制 > 十进制:   11001001 = 2^7+2^6+2^3