题解报告:hdu 1230 火星A+B(字符串)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1230
解题思路:这道题跟进制的转换没什么区别,就是每位改变了进制的大小,仍然是那个做法(进制转换)。这是一道处理字符串的题目,做法就是将A、B这两个字符串读进来,分别用a,b int数组来保存从高位到低位(从左到右)每一位的数字,再反转(从右到左),(前面要清零,便于做竖式计算)。最后边读边输出。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int t[]={,,,,,,,,,,,,,,,,,,,,,,,,,};//先打好表
int main()
{
int len1,len2,g1,g2,gmax,k,tmp,ans,h;//g1、g2分别是记录A、B有几位数,gmax就是最大位数,tmp,ans具体看运算
char A[]={},B[]={};
int a[]={},b[]={},c[]={};
while(cin>>A>>B,strcmp(A,"")||strcmp(B,"")){
tmp=g1=g2=,len1=strlen(A),len2=strlen(B);
memset(a,,sizeof(a));//注意清0,养成好习惯
memset(b,,sizeof(b));
memset(c,,sizeof(c));
for(int i=;i<=len1;i++){
if(A[i]==','||A[i]=='\0'){a[g1++]=tmp;tmp=;}//先把逗号之间的数依次从高位存起来,后面反转便于按竖式(低位)依次相加
else tmp=tmp*+A[i]-'';
}
for(int i=;i<=len2;i++){
if(B[i]==','||B[i]=='\0'){b[g2++]=tmp;tmp=;}
else tmp=tmp*+B[i]-'';
}
k=,gmax=max(g1,g2);
for(int i=,j=g1-;i<j;i++,j--)swap(a[i],a[j]);//反转
for(int i=,j=g2-;i<j;i++,j--)swap(b[i],b[j]);
for(h=;h<gmax;h++){
ans=a[h]+b[h]+tmp;
tmp=ans/t[h];//按素数进制转换
c[k++]=ans%t[h];
}
if(tmp){
while(tmp){//要循环直到多出来的tmp为0,才算是进制转换完成
c[k++]=tmp%t[h];
tmp/=t[h++];
}
}
for(int i=k-;i>;i--)//反向输出
printf("%d,",c[i]);
printf("%d\n",c[]);
}
return ;
}
题解报告:hdu 1230 火星A+B(字符串)的更多相关文章
- HDU 1230 火星A+B
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1230 水题模拟一道,主要考验代码能力,刷完题就感觉自己还是太弱了. #include<cmath ...
- 题解报告:hdu 1398 Square Coins(母函数或dp)
Problem Description People in Silverland use square coins. Not only they have square shapes but also ...
- 题解报告:hdu 2069 Coin Change(暴力orDP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...
- 题解报告:hdu 1028 Ignatius and the Princess III(母函数or计数DP)
Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ...
- 2015浙江财经大学ACM有奖周赛(一) 题解报告
2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...
- 「题解报告」 P3167 [CQOI2014]通配符匹配
「题解报告」 P3167 [CQOI2014]通配符匹配 思路 *和?显然无法直接匹配,但是可以发现「通配符个数不超过 \(10\) 」,那么我们可以考虑分段匹配. 我们首先把原字符串分成多个以一个通 ...
- cojs 强连通图计数1-2 题解报告
OwO 题目含义都是一样的,只是数据范围扩大了 对于n<=7的问题,我们直接暴力搜索就可以了 对于n<=1000的问题,我们不难联想到<主旋律>这一道题 没错,只需要把方程改一 ...
- cojs 二分图计数问题1-3 题解报告
OwO 良心的FFT练手题,包含了所有的多项式基本运算呢 其中一部分解法参考了myy的uoj的blog 二分图计数 1: 实际是求所有图的二分图染色方案和 我们不妨枚举这个图中有多少个黑点 在n个点中 ...
- CF Educational Round 78 (Div2)题解报告A~E
CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students 依题意模拟即可 #include<bits/stdc++.h> us ...
随机推荐
- IOS开发 序列化与反序列化
原帖地址:http://blog.csdn.net/ally_ideveloper/article/details/7956942 不会用,记下自己有时间看 序列化与反序列化概述 序列化,它又称串行化 ...
- 简述HashMap和Hashtable的差别
1.HashMap继承AbstractMap类. Hashtable继承了Dictionary类. 2.HashMap同意有null的键和值. Hashtable不同意有null的键和值. ...
- md5sum使用注意事项
1. linux 命令行的 md5sum命令 echo -n "123456" | md5sum //echo的时候, 默认是自带回车的, 必须要去掉 -n 去掉回车. 2 ...
- [wxWidgets]_[0基础]_[不常见但有用的类wxCmdLineParser]
场景: 1. 有时候须要构造命令行字符串传递給函数调用,比方CreateProcess,假设參数是动态的,那么就得使用类似std::vector<string>加入单个參数,之后拼接为一个 ...
- 使用python在极坐标中生成一条直线
在测试雷达时,往往需要测试雷达的数据是否准确,这时就需要在雷达图中显示一条标准的直线作为对比. "create a wall" import numpy as np import ...
- C#软件开发实例.私人订制自己的屏幕截图工具(十)在截图中包括鼠标指针形状
本实例所有文章文件夹 (一)功能概览 (二)创建项目.注冊热键.显示截图主窗体 (三)托盘图标及菜单的实现 (四)基本截图功能实现 (五)针对拖拽时闪烁卡顿现象的优化 (六)加入配置管理功能 (七)加 ...
- hdu4737A Bit Fun 线段树
//给一串序列,问有多少对[i,j]使得 //[i,j]区间的全部数的或的值小于m //能够知道'或'操作的加(a|b)>=max(a,b) //能够枚举区间的右边r,找左边第一个不满足的位置 ...
- QC ALM 11创建域、项目和用户
一旦HP-ALM安装,我们仅仅能继续创建域.项目和用户使用后的ALM工作.以下是步骤来创建项目.域和用户. 一.创建域 1.对于创建域,第一步是进入站点管理员页面.开展QC使用URL - ...
- PHP 画图——使用jpgraph画图
1.要支持中文须要用到simhei.ttf和simsun.ttc这两个字体,在使用中文的时候须要使用SetFont(FF_SIMSUN,FS_BOLD)设置字体. 将须要的字体放入到项目文件夹下 ...
- 4 自动化构建工具gulp
gulp中文网:http://www.gulpjs.com.cn/ 需要全局安装gulp:$ npm install --global gulp 具体的gulp的使用方法,可以参看gulp中文网的文档 ...