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 ...
随机推荐
- css样式书写的问题
经常遇到前端的朋友问及css样式书写的问题,结合自己实际的工作,自己总结了整理了一下,给大家分享: 一.顺序问题:显示属性-位置属性-元素自身属性-文本属性-其他属性 1.显示属性:z-index.d ...
- CentOS 下的MySQL配置
先贴出代码(/etc/my.cnf)如下: #The following options will be passed to all MySQL clients [client] #password ...
- useradd/du/df/passwd/usermod命令
一.useradd命令 useradd命令-M -u -s -g 常用 -c:加上备注文字,备注文字保存在passwd的备注栏中. -d:指定用户登入时的启始目录. -D:变更预设值.(修改默认配置 ...
- 关于Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的问题
找不到mysql socket的问题,我最近碰到了好多次重装系统以前,我的mysql,apache,php都是自己编译安装的,当时并没有碰到这些问题,重装系统以后,我的mysql是通过yum安装的,a ...
- 使用ContentObserve监听用户发出的短信
import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.app.Activit ...
- 动态加载的数据,hover效果
$('.option li').live('mouseenter',function(){ $(this).addClass("active"); ...
- 文件浏览器及数码相框 -2.3.2-freetype_arm-1
交叉编译:tar xjf freetype-2.4.10.tar.bz2 ./configure --host=arm-linuxmakemake DESTDIR=$PWD/tmp install f ...
- 100个iOS开发/设计面试题汇总
常见问题 你昨天/这周学习了什么? 你为什么热衷于软件开发? 你对哪一种控制系统比较熟悉? 是否参与过GitHub项目? 是否参与过GitHub或其他同类型网站的iOS开源项目? 请描述一下你的iOS ...
- C# IList<T>转为DataTable
public class WebUtil { /// <summary> /// 转换IList<T>为DataTable/// </summary> /// &l ...
- MongoDB 语法(转)
Mongod.exe 是用来连接到mongo数据库服务器的,即服务器端. Mongo.exe 是用来启动MongoDB shell的,即客户端. 其他文件: mongodump 逻辑备份工具. mon ...