hdu 1002
ps:wa了好多次,然后才发现是输入的时候%s和%s要隔开一个空格,我想当然了...
代码:
#include "stdio.h"
#include "string.h"
char a[];
char b[];
char c[];
char d[];
int cal();
int main(){
int i,n1,n2,T,ncase=;
scanf("%d",&T);
getchar();
while(T--){
scanf("%s %s",&a,&b);
memset(c,'\0',sizeof(c)); //字符串清空
memset(d,'\0',sizeof(d));
cal();
n1=strlen(c); //c用来存算得后的结果,d是c不够位了就存在d
n2=strlen(d);
if(ncase!=) puts("");
printf("Case %d:\n",ncase++);
printf("%s + %s = ",a,b);
if(n2>) printf("%c",d[]);
for(i=;i<n1;i++){
printf("%c",c[i]);
}
puts("");
memset(a,'\0',sizeof(a)); //重新清空a和b
memset(b,'\0',sizeof(b));
}
return ;
}
int cal(){
int i,flag,j,n1,n2,m,flag1,m1,k1,k2;
int c1,d1,sum;
n1=strlen(a); //判断a和b的长度
n2=strlen(b);
if(n1>n2){
m1=n1;
flag=; //flag用来记录谁长...
}
else if(n1<n2){
m1=n2;
flag=;
}
else if(n1==n2){
m=n1;
flag=;
}
flag1=;
for(;n1> && n2>;n1--,n2--){
c1=a[n1-]-''; //转成整数来相加
d1=b[n2-]-'';
if(c1+d1+flag1>=){
sum=c1+d1-+flag1; //判断是否需要进位
flag1=;
}
else if(c1+d1+flag1<){
sum=c1+d1+flag1;
flag1=;
}
c[(n1>n2?n1-:n2-)]=sum+''; //放到c组
}
if(flag==){ //如果是a长度比b长度长..
m=n1-n2;
for(i=m-;i>=;i--){
sum=(a[i]-'')+flag1;
if(sum>=){
flag1=;
c[i]=sum-+'';
}
else{
flag1=;
c[i]=sum+'';
}
}
if(flag1==){
d[]='';
d[]='\0';
}
c[m1]='\0';
}
else if(flag==){
m=n2-n1;
for(i=m-;i>=;i--){
sum=(b[i]-'')+flag1;
if(sum>=){
flag1=;
c[i]=sum-+'';
}
else{
flag1=;
c[i]=sum+'';
}
}
if(flag1==){ //如果位数超出了c数组,用d数组来存
d[]='';
d[]='\0';
}
c[m1]='\0';
}
else if(flag==){ //如果位数相同...用d数组来存..
c[m]='\0';
if(flag1>){
d[]='';
d[]='\0';
}
else{
d[]='\0';
}
}
return flag;
}
hdu 1002的更多相关文章
- 抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
数字的反转: 就是将数字倒着存下来而已.(*^__^*) 嘻嘻…… 大致思路:将数字一位一位取出来,存在一个数组里面,然后再将其变成数字,输出. 详见代码. while (a) //将每位数字取出来, ...
- HDU 1002 A - A + B Problem II (大数问题)
原题代号:HDU 1002 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 原题描述: Problem Description I have a ...
- hdu 1002.A + B Problem II 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目意思:就是大整数加法. 两年几前做的,纯粹是整理下来的. #include <stdi ...
- hdu 1002大数(Java)
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 1002 A+B
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1002 复习一下大数 模板: #include <stdio.h> #include <s ...
- hdu 1002 Java 大数 加法
http://acm.hdu.edu.cn/showproblem.php?pid=1002 PE 由于最后一个CASE不须要输出空行 import java.math.BigInteger; i ...
- 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 题意: 数学题,A+B; 思路,这个数非常大,普通加法一定会超时,所以用大数加法.大数加法的基 ...
- HDU 1002 - A + B Problem II - [高精度]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 Problem DescriptionI have a very simple problem ...
- HDU 1002 分类: ACM 2015-06-18 23:03 9人阅读 评论(0) 收藏
昨天做的那题其实和大整数相加类似.记得当初我大一寒假就卡在这1002题上,结果之后就再也没写题... 到今天终于把大整数相加写了一遍. 不过写的很繁琐,抽时间改进一下写简洁一点. #include&l ...
随机推荐
- SPSS数据分析—生存分析
生存分析是对生存时间进行统计分析的一种技术,所谓生存时间,就是指从某一时间点起到所关心的事件发生的这段时间.这里的时间不一定就是钟表日历上的时间,也有可能是其他的度量单位,比如长度单位等. 生存时间有 ...
- 【APP自动化测试】Monkey的测试原理和方法
参考资料:http://blog.csdn.net/io_field/article/details/52189972 一.Monkey测试原理:Monkey是Android中的一个命令行工具,可以运 ...
- 配置handler vs2013 iis8.0
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <v ...
- 解决UIButton 连续点击重复响应事件问题
经常会遇到重复点击某个按钮 事件被响应多次的情景, 有时候可能对程序本身并没有什么影响 , 可有时候偏偏需要限制button响应事件直接的间隔 . 方法一 : 标记 1 . 利用空闲enable属性来 ...
- linux shell技巧
一.在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子 ...
- iframe自动高度
<script> //设置iframe自动高度 function setIframe(id){ var fn = function(){ try{ var iframe = typeof ...
- ef join 用法
var customers = DB.Customer.Join(DB.Commission, cst => cst.CommissionId, ...
- 引用、引用和术语定义<abbr><acronym><address><bdo><blockquote><q><cite><dfn>
<abbr>-缩写 <acronym>-首字母缩写 <address>-地址 <bdo>-文字方向 <blockquote>-长的引用 & ...
- 工作需求----表单select多选交互
由于工作需求接触select框多选的情况,以下是我分享的代码,主要是进入页面默认选中.支持多选属性: 1.html内容 multiple=”multiple” 属性为多选属性 <div clas ...
- Linux内核分析课程总结
Linux内核分析课程总结 By 20135203齐岳 知识梳理 (思维导图地址http://mindmap.4ye.me/mkxM0cFh/1) 从start _ kernel构造一个新的Linux ...