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 ...
随机推荐
- 转载python2进制打包相关
Python模块——struct(字节流,组包拆包实现) http://www.linuxidc.com/Linux/2014-02/97158.htm [日期:2014-02-24] 来源:Linu ...
- BZOJ3689 异或之
我们需要知道一个事实,trie树上是可以要求第k大的! 我们每个节点记个size值然后像其他数据结构一样维护就可以了 然后我们再搞个priority_queue什么的就好了,注意每个值会出现两次只要记 ...
- Storm(4) - Distributed Remote Procedure Calls
Using DRPC to complete the required processing 1. Create a new branch of your source using the follo ...
- 基础的 Linux 网络命令,你值得拥有
导读 有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集.在 It's FOSS 我们并非每天都谈论 Linux 的"命令行方面 ...
- Json文件放入Assets文件,读取解析并且放入listview中显示。
package com.lixu.TestJson; import android.app.Activity; import android.content.Context; import andro ...
- Js练习题之字数判断
目标:控制某个栏目里每行字数,当字数超出时,以省略号显示 $("元素").each(function(){ var maxlength=9; //最大字数 if($(this).t ...
- P121 6.7 第一题和第二题
package nothh; import java.util.Arrays; public class shuzu6_7 { public static void main(String[] arg ...
- POJ 1077 && HDU 1043 Eight A*算法,bfs,康托展开,hash 难度:3
http://poj.org/problem?id=1077 http://acm.hdu.edu.cn/showproblem.php?pid=1043 X=a[n]*(n-1)!+a[n-1]*( ...
- http://www.html-js.com/article/2328
React.js编程思想 张小俊128 发布在使用React.js开发web应用2015年8月7日view:33385React 在文章任何区域双击击即可给文章添加[评注]!浮到评注点上可以查看详情. ...
- WP8 学习 Onnavigatedto和OnnavigatedFrom的区别
OnNavigatedTo:重写 OnNavigatedTo 方法以检查导航请求并且准备供显示的页面.这个方法就像是初始化(Ini) ,它先于Loaded事件之前被执行,所以在这里可以控制一些初始化前 ...