HDU 1753 大明A+B(字符串模拟,简单题)
简单题,但要考虑一些细节:
前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出
然后处理起来就比较麻烦了。
我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜我的眼睛。
#include<string.h>
#include<stdio.h>
int i,la,lb,la1,lb1,la2,lb2,lc1,lc2,yi,temp;
char a[],b[],a1[],a2[],b1[],b2[],c1[],c2[];
void nizhi1(){
int le=la1/;
char c;
for(int i=;i<le;i++){
c=a1[i];a1[i]=a1[la1--i];a1[la1--i]=c;
}
}
void nizhi2(){
int le=la2/;
char c;
for(int i=;i<le;i++){
c=a2[i];
a2[i]=a2[la2--i];
a2[la2--i]=c;
}
}
void nizhi3(){
int le=lb1/;
char c;
for(int i=;i<le;i++){
c=b1[i];
b1[i]=b1[lb1--i];
b1[lb1--i]=c;
}
}
void nizhi4(){
int le=lb2/;
char c;
for(int i=;i<le;i++){
c=b2[i];
b2[i]=b2[lb2--i];
b2[lb2--i]=c;
}
}
void nizhi5(){
int le=lc1/;
char c;
for(int i=;i<le;i++){
c=c1[i];
c1[i]=c1[lc1--i];
c1[lc1--i]=c;
}
}
void nizhi6(){
int le=lc2/;
char c;
for(int i=;i<le;i++){
c=c2[i];
c2[i]=c2[lc2--i];
c2[lc2--i]=c;
}
}
int main()
{ while(scanf("%s%s",a,b)!=EOF)
{
memset(a1,,sizeof(a1));
memset(a2,,sizeof(a2));
memset(b1,,sizeof(b1));
memset(b2,,sizeof(b2));
memset(c1,,sizeof(c1));
memset(c2,,sizeof(c2));
i=la=lb=la1=lb1=la2=lb2=lc1=lc2=yi=temp=;
la=strlen(a);
lb=strlen(b);
la1=la2=lb1=lb2=;
for(i=;i<la;i++)
{
if(a[i]=='.'||a[i]=='\0')
break;
a1[la1++]=a[i];
}
a1[la1]='\0';
nizhi1(); for(i=i+;i<la;i++)
{
a2[la2++]=a[i];
}
a2[la2]='\0';
nizhi2();
for(i=;i<lb;i++)
{
if(b[i]=='.'||b[i]=='\0')
break;
b1[lb1++]=b[i];
}
b1[lb1]='\0';
nizhi3();
for(i=i+;i<lb;i++)
{
b2[lb2++]=b[i];
}
b2[lb2]='\0';
nizhi4(); lc1=;
temp=;
yi=;
if(la2>lb2)
{
int cha=la2-lb2;
for(i=;i<cha;i++)
{
if(yi==&&a2[i]==''){}
else
{
yi=;
c1[lc1++]=a2[i];
}
}
for(i=;i<lb2;i++)
{
temp=temp+a2[i+cha]+b2[i]-''-'';
if(temp%==&&yi==){}
else
{
yi=;
c1[lc1++]=temp%+'';
}
temp=temp/;
}
}
else
{
int cha=lb2-la2;
for(i=;i<cha;i++)
{
if(yi==&&b2[i]==''){}
else
{
yi=;
c1[lc1++]=b2[i];
}
}
for(i=;i<la2;i++)
{
temp=temp+b2[i+cha]+a2[i]-''-'';
if(temp%==&&yi==){}
else
{
yi=;
c1[lc1++]=temp%+'';
}
temp=temp/;
}
}
c1[lc1]='\0'; if(la1>lb1)
{
for(i=;i<lb1;i++)
{
temp=temp+a1[i]+b1[i]-''-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
for(;i<la1;i++)
{
temp=temp+a1[i]-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
}
else
{
for(i=;i<la1;i++)
{
temp=temp+a1[i]+b1[i]-''-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
for(;i<lb1;i++)
{
temp=temp+b1[i]-'';
c2[lc2++]=temp%+'';
temp=temp/;
}
}
if(temp!=)
c2[lc2++]=temp+'';
c2[lc2]='\0';
nizhi5();
nizhi6();
yi=;
for(i=;i<lc2;i++)
{
if(c2[i]==''&&yi==)
continue;
else
{
yi=;
printf("%c",c2[i]);
}
}
if(lc1!=)
{
printf(".%s",c1);
}
printf("\n");
}
return ;
}
HDU 1753 大明A+B(字符串模拟,简单题)的更多相关文章
- HDU 1753 大明A+B (大正小数加法、字符串处理)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 1753 大明A+B
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 容易出错的事例: 0.1 0.2 1.88 22.22 1 0.01 大概出错的几个点,做久了思维根 ...
- hdu 1753 大明A+B(高精度小数加法)
//深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...
- hdu 5083 有坑+字符串模拟水题
http://acm.hdu.edu.cn/showproblem.php?pid=5083 机器码和操作互相转化 注意SET还要判断末5位不为0输出Error #pragma comment(lin ...
- hdu 1753 大明A+B(大数)
题意:小数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<string.h> using na ...
- [BestCoder Round #3] hdu 4907 Task schedule (模拟简单题)
Task schedule Problem Description 有一台机器,而且给你这台机器的工作表.工作表上有n个任务,机器在ti时间运行第i个任务,1秒就可以完毕1个任务. 有m个询问,每一个 ...
- HDU 5776 sum( 鸽巢定理简单题 )
链接:传送门 题意:给一个长为 n 的串,问是否有子串的和是 m 的倍数. 思路:典型鸽巢定理的应用,但是这里 n,m 的大小关系是不确定的,如果 n >= m 根据定理可以很简单的判定是一定有 ...
- HDU 1028Ignatius and the Princess III(母函数简单题)
Ignatius and the Princess III Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
- hdu 2629 Identity Card (字符串解析模拟题)
这题是一个字符串模拟水题,给12级学弟学妹们找找自信的,嘿嘿; 题目意思就是要你讲身份证的上的省份和生日解析出来输出就可以了: http://acm.hdu.edu.cn/showproblem.ph ...
随机推荐
- startup.bat闪退---tomcat环境变量配置中遇到的问题
常用的方法: 1.在已解压的tomcat的bin文件夹下找到startup.bat,右击->编辑.在文件头加入下面两行: SET JAVA_HOME=D:\Java\jdk1.6.0_10 ...
- TCP通信三次握手的过程
过程 编辑 第一次 第一次握手:建立连接时,客户端 发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号(Synchronize Sequence Nu ...
- zedboard OPENCV移植
1:系统环境搭建 要准备好交叉编译环境 见http://blog.csdn.net/xiabodan/article/details/22717175 2:下载cmake CMake是一个跨平台的安装 ...
- Linux C 程序 线程(18)
线程控制 1.线程与进程的关系 线程:计算机中独立运行的最小单位. 在用户角度:多个线程是同时执行的. 操作系统角度:各个线程交替执行 以上只针对单核CPU的情况 在多核CPU主机上,多个线程可以同时 ...
- protobuf编译报错
在下载protobuf进行编译的时候会出现如图所示的错误 修改 C:\protobuf-2.4.1\gtest\include\gtest\internal\gtest-tuple.h(C:是我解压p ...
- 对图片进行各种样式裁对图片进行各种样式裁剪:圆形、星形、心形、花瓣形等剪:圆形、星形、心形、花瓣形等--第三方开源--CustomShapeImageView
CustomShapeImageView在github上的项目主页是:https://github.com/MostafaGazar/CustomShapeImageView 如果仅仅是需要获取圆形. ...
- 比较不错的JS 曲线图
fashion chart falsh文件支持,无需考虑兼容 Highcharts(纯JS,很漂亮 效果很好) Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容 ...
- 第29章 项目10:DIY街机游戏
1.问题 "Self-Defense Against Fresh Fruit":军士长指挥自己的士兵使用自我防御战术对抗以石榴.芒果.青梅和香蕉等新鲜水果入侵者.防御战术包括使用枪 ...
- Jquery LigerUI框架学习(一)
ligerUI框架是一个很丰富的后台框架模板,具有简洁大方的后台样式框架,还有很多灵活的控件,方便开发人员使用: 把昨天学习的成功拿出来供大家学习学习: 首先我们要去ligerUI官网下载Jquery ...
- Basic Vlan Concepts
1. Vlan Benefit ·To reduce CPU overhead on each device by reducing the number of devices that recei ...