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 ...
随机推荐
- GDAL读取tiff文件/C++源码
// gdal_geotiff.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "gdal_priv.h&quo ...
- OpenGL 回顾-——矩形的创建、列表
在使用四点创建矩形时,必须按照顺序,顺时针或者逆时针,不然会错乱.感觉是根据点的顺序依次连线. glBegin(GL_QUADS); glColor3f(1.0,0.0,0.0); glVertex3 ...
- js动态引入的四种方式
index.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...
- Speeding up AngularJS apps with simple optimizations
AngularJS is a huge framework with that already has many performance enhancements built in, but they ...
- activiti搭建(一)初始化数据库
转载请注明源地址:http://www.cnblogs.com/lighten/p/5876681.html activiti-engine.jar包中自带了创建activiti工作流数据库表的SQL ...
- ADO.NET笔记——执行事务
相关知识: 处于同一事务(Transaction)内的一组操作,要么都成功执行,最后完全提交:但如果只要有任何一个操作失败或者出问题,所有值钱执行的操作也都取消并恢复到初始状态(即回滚) SqlTra ...
- 【Qt】Qt之自定义界面(实现无边框、可移动)【转】
简述 UI设计是指对软件的人机交互.操作逻辑.界面美观的整体设计.好的UI设计不仅是让软件变得有个性.有品位,还要让软件的操作变得舒适简单.自由,充分体现软件的定位和特点. 爱美之心人皆有之.其实软件 ...
- mongodb 入门笔记
选择Mongo的关键是:这是一个 JSON 文档数据库. 1. Mongo 的术语 文档:一条完整的数据就是一个文档(对应于 MySQL 的一行). 集合:一组文档构成一个集合.类似 MySQL 中表 ...
- (三)开始在OJ上添加签到功能
在了解完OJ文件下的各个文件夹的主要作用后,我们开始往里面添加东西(其实只要知道各文件夹是干什么的后,添加东西也变得非常简单了) 一 在数据库中添加对应功能的字段. 我们这个学期才刚开数据库这门课,所 ...
- SQLite数据库的加密【转】
1.创建空的SQLite数据库. //数据库名的后缀你可以直接指定,甚至没有后缀都可以 //方法一:创建一个空sqlite数据库,用IO的方式 FileStream fs = File.Create( ...