HDU 1002 A + B Problem II(AC代码)
#include <stdio.h>
#include <string.h>
#define MAX 1009
int main()
{
char a[MAX]={},b[MAX]={};
int n,i,len1,len2,j=,z=,r=,k=;
char *p=NULL;
scanf("%d",&n);
if( <n&&n< ){
for(i=;i<n;i++){
j=;
z=;
r=;
scanf("%s",a);
scanf("%s",b);
printf("Case %d:\n",i+);
printf("%s + %s = ",a,b);
len1=strlen(a);
len2=strlen(b);
if( len1>len2 ){
b[len1]='\0';
len1--;
len2--;
while( len2>= ){
b[len1--]=b[len2--];
}
while(len1>=){
b[len1--]='';
}
}
else if( len2>len1 ){
a[len2]='\0';
len1--;
len2--;
while( len1>= ){
a[len2--]=a[len1--];
}
while(len2>=){
a[len2--]='';
}
}
len1=strlen(a);
len2=strlen(b);
len1--;
len2--;
while( len1>= && len2>= ) {
z= (b[len2]-'') + (a[len1]-'') + r;
r=z/;
z=z-r*;
b[len2]=z+'';
len1--;
len2--;
};
if( r!= ){
printf("");
printf("%s\n",b);
}
else{
len2=strlen(b);
while( b[k]==''&&k<len2 ){
k++;
}
p=&b[k];
printf("%s\n",p);
}
if(i!=n-)
printf("\n"); }
}
return ;
}
格式很重要:
Case+空格+i+:(冒号后无空格)
a+空格+b+空格+=+空格+c(直接把+号去掉,再按空格键代替空格)
(空一行)
<<-继续上面格式->>
注意:最后一个case输完后是不需要空行的,所以会有代码
if(i!=n-1)
printf("\n"); //当非最后一个case时,输出一个空行 解题思路:
1、数字可能太大,得用数组逐个记下来,第一个存在a,另一个存在b。
2、strlen算它们各自的长度(strlen不计算'\0'),从数组的第strlen个开始
3、相加之后要考虑是否需要进一位,需要的话把十位上数字提出来,提取出来和第strlen-1的那两个数相加。
4、刚被提取个位上的数字存到长度较长的数组中,节省点空间。
5、一直重复。 要注意:
输入可能是00001 00002,那么你要输出3,不能是00003。
输入可能是99999 99998,那么考虑进位时,因两个数组一样长,所以可能进位会填不进数组,要单独输出。
输入可能是99999 1,那么也是考虑进位的问题。
输入可能是1 9999,也是进位问题,要考虑不同长度的数字的前后顺序。
HDU 1002 A + B Problem II(AC代码)的更多相关文章
- 抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
数字的反转: 就是将数字倒着存下来而已.(*^__^*) 嘻嘻…… 大致思路:将数字一位一位取出来,存在一个数组里面,然后再将其变成数字,输出. 详见代码. while (a) //将每位数字取出来, ...
- HDU 1002 A + B Problem II(高精度加法(C++/Java))
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 1002 - A + B Problem II - [高精度]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 Problem DescriptionI have a very simple problem ...
- 大数加法~HDU 1002 A + B Problem II
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1002 题意: 数学题,A+B; 思路,这个数非常大,普通加法一定会超时,所以用大数加法.大数加法的基 ...
- HDU 1002 A + B Problem II(大整数相加)
A + B Problem II Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- HDU 1002 A + B Problem II
A + B Problem II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16104 Accepted ...
- hdu 1002.A + B Problem II 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目意思:就是大整数加法. 两年几前做的,纯粹是整理下来的. #include <stdi ...
- HDU 1002 A + B Problem II (大数加法)
题目链接 Problem Description I have a very simple problem for you. Given two integers A and B, your job ...
- hdu 1002 A + B Problem II(大数)
题意:就是求a+b (a,b都不超过1000位) 思路:用数组存储 第一道大数的题目,虽然很水,纪念一下! 代码: #include<cstdio> #include<cstring ...
随机推荐
- VoltDB介绍——本质:数据保存在内存,充分利用CPU,单线程去锁,底层数据结构未知
转自:http://blog.csdn.net/ransom0512/article/details/50440316 简介 VoltDB数据库是一个分布式,可扩展,shared-nothing的内存 ...
- 在Excel中引用其他宏
在excel的使用过程中,会用到一些自定义函数,可以使用宏轻松的实现这些功能,问题是必须使用“启用宏的excel”,这样用户每次打开时都要启用宏. 现用以按背景色计划为例,解决以上问题: 1.新建一个 ...
- 利用LM神经网络和决策树去分类
# -*- coding: utf-8 -*- import pandas as pd from scipy.interpolate import lagrange from matplotlib i ...
- bzoj 1818: [Cqoi2010]内部白点
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; struc ...
- POJ 1068 Parencodings 模拟 难度:0
http://poj.org/problem?id=1068 #include<cstdio> #include <cstring> using namespace std; ...
- POJ 1050 To the Max 暴力,基础知识 难度:0
http://poj.org/problem?id=1050 设sum[i][j]为从(1,1)到(i,j)的矩形中所有数字之和 首先处理出sum[i][j],此时左上角为(x1,y1),右下角为(x ...
- Android事件处理--读书笔记
2013-12-28 17:57:17 1. Android提供了两种方式的事件处理:基于回调和基于监听的事件处理: 1.1 对基于监听的事件处理而言,主要做法是为Android界面组件绑定特定的事件 ...
- C++-继承名称的掩盖
/////////////////////////////////////////////////////////////////////////////// // // FileName : eff ...
- [安卓]softap
http://www.cnblogs.com/javawebsoa/archive/2013/05/29/3106758.html
- iphone判断当前网络连接类型
eachability只能区分出无网络.wifi和wwan(2G&2.5G&3G)类型的网络连接类型,只需重构networkStatusForFlags方法,即可详细区分出2G与3G网 ...