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("");
		}
	}
}

  

时间: 2024-10-06 02:30:33

POJ 1312 Numerically Speaking的相关文章

poj 1312

Numerically Speaking Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1033   Accepted: 606 Description A developer of crossword puzzles (and other similar word games) has decided to develop a mapping between every possible word with from

HDU 1314 Numerically Speaking(大数加减乘除+另类二十六进制互相转换)

原题代号:HDU 1314 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1314 Numerically Speaking Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 766    Accepted Submission(s): 190 Problem Description A de

【HDOJ】1314 Numerically Speaking

学了几天的Java了,终于独立A了一道大数计算.感觉还得练Java啊. 1 import java.util.Scanner; 2 import java.math.BigInteger; 3 import java.lang.StringBuilder; 4 5 public class Main { 6 public static void main(String[] args) { 7 Scanner cin = new Scanner(System.in); 8 while (cin.h

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

zoj题目分类

饮水思源---zoj 转载自:http://bbs.sjtu.edu.cn/bbscon,board,ACMICPC,file,M.1084159773.A.html 注:所有不是太难的题都被归成了“简单题”,等到发现的时候已经太晚了,我太死脑筋 了……:( 有些题的程序我找不到了,555……:( SRbGa的题虽然都很经典……但是由于其中的大部分都是我看了oibh上的解题报告后做 的,所以就不写了…… 题目排列顺序没有规律……:( 按照个人感觉,最短路有的算做了DP,有的算做了图论. 有些比较

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

POJ 3449 Geometric Shapes --计算几何,线段相交

题意: 给一些多边形或线段,输出与每一个多边形或线段的有哪一些多边形或线段. 解法: 想法不难,直接暴力将所有的图形处理成线段,然后暴力枚举,相交就加入其vector就行了.主要是代码有点麻烦,一步一步来吧. 还有收集了一个线段旋转的函数. Vector Rotate(Point P,Vector A,double rad){ //以P为基准点把向量A旋转rad return Vector(P.x+A.x*cos(rad)-A.y*sin(rad),P.y+A.x*sin(rad)+A.y*co

POJ题目推荐(转载)

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅