POJ 1312 Numerically Speaking
题意:a = 1, b = 2, ..., z = 26, aa = 27, ...
给字符串或者数字,输出对应的答案。
解法:类似26进制……但又不完全是……拿java大数模拟了一下……
代码:
import java.util.*;
import java.math.*; public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
while(true)
{
String input = cin.next();
if(input.equals("*"))
break;
String ans1 = "", ans2 = "";
if(input.charAt(0) >= '0' && input.charAt(0) <= '9')
{
ans2 = input;
BigInteger x = new BigInteger(input);
while(!x.equals(BigInteger.ZERO))
{
if(x.equals(BigInteger.valueOf(26)))
{
ans1 += 'z';
break;
}
ans1 += (char)('a' + (Integer.parseInt(x.mod(BigInteger.valueOf(26)).toString()) + 25) % 26);
if(x.mod(BigInteger.valueOf(26)).equals(BigInteger.ZERO))
{
x = x.divide(BigInteger.valueOf(26));
x = x.add(BigInteger.valueOf(-1));
}
else
x = x.divide(BigInteger.valueOf(26));
}
}
else
{
ans1 = input;
BigInteger x = BigInteger.ZERO;
for(int i = 0; i < input.length(); i++)
{
x = x.multiply(BigInteger.valueOf(26));
x = x.add(BigInteger.valueOf((int)input.charAt(i) - 'a' + 1));
}
ans2 = x.toString();
}
if(input.charAt(0) >= '0' && input.charAt(0) <= '9')
for(int i = ans1.length() - 1; i >= 0; i--)
System.out.print(ans1.charAt(i));
else
System.out.print(ans1);
for(int i = 22 - ans1.length(); i > 0; i--)
System.out.print(" ");
int len = ans2.length() % 3;
int res = ans2.length();
for(int i = 0; i < len; i++)
System.out.print(ans2.charAt(i));
for(int i = len; i < res; i += 3)
{
if(i != 0)
System.out.print(',');
System.out.print(ans2.charAt(i));
System.out.print(ans2.charAt(i + 1));
System.out.print(ans2.charAt(i + 2));
}
System.out.println("");
}
}
}
POJ 1312 Numerically Speaking的更多相关文章
- HDU 1314 Numerically Speaking(大数加减乘除+另类二十六进制互相转换)
原题代号:HDU 1314 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1314 Numerically Speaking Time Limit: 2 ...
- 【HDOJ】1314 Numerically Speaking
学了几天的Java了,终于独立A了一道大数计算.感觉还得练Java啊. import java.util.Scanner; import java.math.BigInteger; import ja ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- POJ 1595 Prime Cuts (ZOJ 1312) 素数打表
ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=312 POJ:http://poj.org/problem?id=159 ...
- HDOJ 1312 (POJ 1979) Red and Black
Problem Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...
- poj 题目分类(1)
poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...
- POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)
本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...
- 转载:poj题目分类(侵删)
转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) ...
随机推荐
- Test a ; vs Test a( ) ;
一. Test a(); Test a; //前提声明了Test类 前者声明一个返回值为Test,名为a的函数,后者声明了Test类的一个对象(把Test当成int) struct Test{ ...
- POJ 1724 Roads
题意:有R条路,每条路都有一定的路长和花费,问在总的花费小于一定的值的情况下,从1到N的最短路程 注意:这里两点之间单向边,且可能存在很多条路,所以只能用邻接表存储.思路:用dijks ...
- POJ 2993Emag eht htiw Em Pleh
http://poj.org/problem?id=2993 这个题与POJ2996正好反着,但个人认为,比2996好做多了,那些边边框框都挺容易输出的,剩下的注意p别忘了给输进去就行,还有白色的是大 ...
- kindeditor.net应用
1.网址:http://kindeditor.net/docs/usage.html
- PSYoungGen /PSOldGen/PSPermGen区别
原文地址:http://bbs.csdn.net/topics/210064791 谁能解译一下PSYoungGen /PSOldGen/PSPermGen区别及出现的问题? 看来没有收集到答案,查看 ...
- 51Nod 有限背包计数问题 题解报告
首先这道题理论上是可以做到O(nlogn)的,因为OEIS上有一个明显可以用多项式乘法加速的式子 但是由于模数不是很兹磁,所以导致nlogn很难写 在这里说一下O(n*sqrt(n))的做法 首先我们 ...
- C++和pascal之间的通信
// MyFirst.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include "Winsock2.h"#pragm ...
- Android Handler与多线程
本文首先解释一下handler是用来干嘛的,然后通过例子介绍其在多线程中的应用. 什么是Handler handler通俗一点讲就是用来在各个进程之间发送数据的处理对象.在任何进程中,只要获得了另一个 ...
- 使用 powershell 的 grep 过滤文本
使用 powershell 的 grep 过滤文本 有个log文件,大小在4M左右,要求找出里面耗时超过100s 的记录.首先想到了强大的 grep ,那么就搞起. 先在网上找一下资料,这篇文章,有几 ...
- JVM学习笔记(一)------基本结构
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM: 从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别 对于JVM自身的物理结构,我们可以从下图鸟瞰一下: 对于J ...