1002
来源:互联网 发布:云计算运维工程师待遇 编辑:程序博客网 时间:2024/06/01 10:50
1002高精度 加法例题,格式方面有空格 空行要求 输出的最后一行不要有空行
注:之前用dev c++ 编译成功 提交到OJ系统选择C语言编译错误(Compilation Error) 参照网上的方法用C++提交 编译通过;
不明白为什么,大概是一些函数C不支持的原因吧
RunId : 21581341 Language : C++ Author : jim0912
Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
memset (c,0,sizeof(c));
3.最后一行不能为空行 if (ii<tot-1) printf("\n");
#include <stdio.h>#include <string.h> int main(){ int tot,ii,i,j,k,e,lena,lenb,lenc,r; char tmp,a[1000],b[1000],c[1000]; scanf("%d",&tot); for(ii=0;ii!=tot;ii++){ scanf ("%s%s",&a,&b); lena=strlen(a); lenb=strlen(b); for (i=0;i!=lena;i++) printf("%c",a[i]); printf(" + "); for (i=0;i!=lenb;i++) printf("%c",b[i]); printf(" = "); for (i=0;i<int(lena/2);i++){ tmp=a[lena-1-i]; a[lena-1-i]=a[i]; a[i]=tmp; } for (j=0;j<int(lenb/2);j++){ tmp=b[lenb-1-j]; b[lenb-1-j]=b[j]; b[j]=tmp; } e=0; for (k=0;k<lena&&k<lenb;k++){ r=a[k]-'0'+b[k]-'0'+e; c[k]=r%10+'0'; e=r/10; } if (k<lena) for (;k!=lena;k++){ c[k]=a[k]+e; e=(a[k]-'0')/10; } else for (;k!=lenb;k++){ c[k]=b[k]+e; e=(b[k]-'0')/10;} if (e!=0) c[k]=e+'0'; else c[k]='\0'; lenc=strlen(c); for (j=0;j<int(lenc/2);j++){ tmp=c[lenc-1-j]; c[lenc-1-j]=c[j]; c[j]=tmp; } puts(c); printf("\n"); //for (i=0;i!=lenc;i++) printf("%s%c",c[i]);}}
RunId : 21585978 Language : C++ Author : jim0912
Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
#include <stdio.h>#include <string.h>#include <stdlib.h> int main(){ int tot,ii,i,j,k,e,lena,lenb,lenc,r; char tmp,a[1000],b[1000],c[1000]; scanf("%d",&tot); for(ii=0;ii!=tot;ii++){ scanf ("%s%s",&a,&b); memset (c,0,sizeof(c)); lena=strlen(a); lenb=strlen(b); printf("Case %d:\n",ii+1); for (i=0;i!=lena;i++) printf("%c",a[i]); printf(" + "); for (i=0;i!=lenb;i++) printf("%c",b[i]); printf(" = "); for (i=0;i<int(lena/2);i++){ tmp=a[lena-1-i]; a[lena-1-i]=a[i]; a[i]=tmp; } for (j=0;j<int(lenb/2);j++){ tmp=b[lenb-1-j]; b[lenb-1-j]=b[j]; b[j]=tmp; } e=0; for (k=0;k<lena&&k<lenb;k++){ r=a[k]-'0'+b[k]-'0'+e; c[k]=r%10+'0'; e=r/10; } if (k<lena) for (;k!=lena;k++){ r=a[k]-'0'+e; e=r/10; c[k]=r%10+'0'; } else for (;k!=lenb;k++){ r=b[k]-'0'+e; e=r/10; c[k]=r%10+'0'; }//printf("eis%d ",e); if (e!=0) c[k]=e+'0';// else// c[k]='\0';// puts(c); lenc=strlen(c); for (j=0;j<int(lenc/2);j++){ tmp=c[lenc-1-j]; c[lenc-1-j]=c[j]; c[j]=tmp; } puts(c); if (ii<tot-1) printf("\n"); //for (i=0;i!=lenc;i++) printf("%s%c",c[i]); } //system("pause");}
注解:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{ //高精度加法
int tot,ii,i,j,k,e,lena,lenb,lenc,r;
char tmp,a[1000],b[1000],c[1000];
scanf("%d",&tot);//N组测试数据
for(ii=0;ii!=tot;ii++){
scanf ("%s%s",&a,&b);
memset (c,0,sizeof(c)); //初始化字符数组,很关键的一点,内存没有清空而引起bug
lena=strlen(a);
lenb=strlen(b);
printf("Case %d:\n",ii+1);
/*---------------------------------*/
for (i=0;i!=lena;i++)
printf("%c",a[i]);
printf(" + ");
for (i=0;i!=lenb;i++)
printf("%c",b[i]);
printf(" = ");
/*-----------------------------oj格式需要而已*/
for (i=0;i<int(lena/2);i++){
tmp=a[lena-1-i];
a[lena-1-i]=a[i];
a[i]=tmp;
}
for (j=0;j<int(lenb/2);j++){
tmp=b[lenb-1-j];
b[lenb-1-j]=b[j];
b[j]=tmp;
}
/*---------------------------------颠倒字符串 便于相加*/
e=0;
for (k=0;k<lena&&k<lenb;k++){
r=a[k]-'0'+b[k]-'0'+e;
c[k]=r%10+'0';
e=r/10;
}
/*--------------------------------对齐部分相加*/
if (k<lena)
for (;k!=lena;k++){
r=a[k]-'0'+e;
e=r/10;
c[k]=r%10+'0';
}
else
for (;k!=lenb;k++){
r=b[k]-'0'+e;
e=r/10;
c[k]=r%10+'0';
}
/*---------------------------------非齐部分相加*/
if (e!=0)
c[k]=e+'0';
/*--------------------------------最高位加1*/
lenc=strlen(c);
for (j=0;j<int(lenc/2);j++){
tmp=c[lenc-1-j];
c[lenc-1-j]=c[j];
c[j]=tmp;
}
/*-------------------------------颠倒还原字符串数组*/
puts(c);
if (ii<tot-1) printf("\n"); //oj需要 最后一组数据不再输出空行
}
}
- 1002 。
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- 1002
- RHEL 7.2 下安装Tomcat并设置开机自启
- PMD工具(Ptrace-based Memory Dump)源代码(注释版)
- 问题 : 最简单的计算机
- Maven系列三@三生命周期和Maven聚合
- 欢迎使用CSDN-markdown编辑器
- 1002
- 学习SpringMVC——从HelloWorld开始
- H5面试题---&&的使用
- Windows下免安装版Tomcat的配置
- POJ 3617 Best Cow Line——贪心
- TKPHP5软删除
- 树莓派LED驱动编写
- Lambda表达式树
- KNN算法初步实现