题目:http://acm.hdu.edu.cn/showproblem.php?pid=2100

根据题目意思,现将字符串转化为10进制,再采用10进制加法相加,再转化为26进制.

另一种直接的思路是:采用26进制,模拟加法过程.

思路:用字符串存储两个26进制的数,然后在前面补A(相当于十进制中的0),使两个数对齐,以便进行加法进位.对齐之后,采用26进制,进行加法运算,运算得到的数字,再转化为对应的字符,即可.

C++代码如下:

#include<iostream>
#include<string>
#include<string.h>
using namespace std; int main()
{
string s1,s2;
int i,j;
while(cin >> s1 >> s2)
{
int len_1 = s1.length();
int len_2 = s2.length();
if(len_1<len_2)
{
s1.swap(s2);
int temp = len_1;
len_1 = len_2;
len_2 = temp;
}
s1 = 'A' + s1;
for(i=len_2;i<=len_1;i++)
s2 = 'A'+ s2;
//至此,s1和s2已经对齐了,并且前面至少都有一个A,用于进位 int len = s1.length();
int c = 0;
for(i=len-1;i>=0;i--)
{
int x = s1[i] - 'A';//获取字符 s1[i]对应的数字,如s1[i] = 'C',则s[i]-'A' = 2;
int y = s2[i] - 'A'; c += (x+y);
s1[i] = (c%26) + 'A';//结果存储在 s1中
c /= 26;
} for(i=0;i<len;i++)
if(s1[i]!='A')//输出的时候,前导A不输出
break;
for(j=i;j<len;j++)
cout << s1[j];
cout << endl;
} return 0;
}

上述代码,提交可以通过.

【hdoj_2100】Lovekey(大数+字符处理)的更多相关文章

  1. HDU 2100 Lovekey (26进制大数、字符串)

    Lovekey Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  2. poj1423---求一个大数的位数方法,我猜网站上统计输入字符少于多少位的那个算法

    法一:对一个数求它的对数,+1取整为其位数 问题转化为int (log10(N!)+1),对数性质log10(N!)=log10(N)+log10(N-1)+...+log10(1) /*用log10 ...

  3. 杭电acm 1002 大数模板(一)

    从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...

  4. 支持无限精度无限大数的类BigNumber实现

    介绍 本篇是MathAssist的第二篇,在前言中粗略地展示了MathAssist的“计算和证明”能力,本篇开始将详细介绍其实现原理. 从计算开始说起,要实现任意大数的计算器首先得有一个类支持大数运算 ...

  5. HDU 1131 Count the Trees 大数计算

    题目是说给出一个数字,然后以1到这个数为序号当做二叉树的结点,问总共有几种组成二叉树的方式.这个题就是用卡特兰数算出个数,然后因为有编号,不同的编号对应不同的方式,所以结果是卡特兰数乘这个数的阶乘种方 ...

  6. 大数计算_BigNum优化_加减乘除乘方取余_带注释_数组

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib&g ...

  7. 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)

    题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...

  8. java-两个大数相加

    题目要求:用字符串模拟两个大数相加. 一.使用BigInteger类.BigDecimal类 public static void main(String[] args) { String a=&qu ...

  9. JAVA - 大数类详解

    写在前面 对于ACMer来说,java语言最大的优势就是BigInteger,Bigdecimal,String三个类. 这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为j ...

随机推荐

  1. requests、BeautifulSoup、自动登陆示例

    requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...

  2. 初识python版本

    区别一: python2x:源码重复不规范. python3x:重新整理规范了源码. 区别二: python2x: 默认的编码方式ascii,显示中文需要首行添加:#  _*_ encoding: u ...

  3. mysql三-2:数据类型

    一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...

  4. 对于redis底层框架的理解(一)

    近期学习了redis底层框架,好多东西之前都没听说过,算是大开眼界了. 先梳理下redis正常的通讯流程吧 首先服务器启动都有主函数main,这个main函数就在redis.c里 首先是initser ...

  5. python 分享文件

    http://note.youdao.com/noteshare?id=1787e8bf3a71fca16005ece3e7fffb6c

  6. 封装-python

    六 封装 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子.但其实这种理解相当片面 首先我们要了解 回到顶部 6.1 要封装什么 你 ...

  7. 数组C - 玛雅日历

    During his last sabbatical, professor M. A. Ya made a surprising discovery about the old Maya calend ...

  8. Java读取大文件的高效率实现

    1.概述 本教程将演示如何用Java高效地读取大文件.这篇文章是Baeldung (http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分. 2.在内存中读取 ...

  9. inviteflood 洪泛滥工具

    inviteflood是一种通过UDP/IP执行SIP/SDP INVITE消息泛洪的工具,描述可以参考:inviteflood Package Description 使用inviteflood工具 ...

  10. NYOJ 1063 生活的烦恼 (二叉树)

    题目链接 描述 生活的暑假刚集训开始,他要决心学好字典树,二叉树,线段树和各种树,但生活在OJ上刷题的时候就遇到了一个特别烦恼的问题.那当然就是他最喜欢的二二叉树咯!题目是这样的:给你一颗非空的二叉树 ...