3054 高精度练习-文件操作
2016-06-03 19:46
309 查看
3054 高精度练习-文件操作
时间限制: 1 s空间限制: 64000 KB
题目等级 : 钻石 Diamond
题解
查看运行结果
题目描述 Description
输入一组数据,将每个数据加1后输出
输入描述 Input Description
输入数据:两行,第一行为一个数n,第二行为n个数据
输出描述 Output Description
输出数据:一行,为处理过的数据
样例输入 Sample Input
5
-1 2 100 -5 14
样例输出 Sample Output
0 3 101 -4 15
数据范围及提示 Data Size & Hint
数据范围:对60%为数据,ni≤32767
对100%为数据,ni≤10255
n<=500
数据改了7次终于改对了
分类标签 Tags 点此展开
#include<cstdio> #include<iostream> #include<cstring> #define ref(i,x,y)for(int i=x;i<=y;i++) #define def(i,x,y)for(int i=x;i>=y;i--) using namespace std; int lena,lenb,lenc,p,t,a[1010],b[1010],c[1010]; char a1[1010]; bool flag=0; int main() { scanf("%d",&t); while(t--){ memset(a1,0,sizeof a1); memset(a,0,sizeof a); memset(b,0,sizeof b); memset(c,0,sizeof c); scanf("%s",a1); lena=strlen(a1);lenb=1; lenc=max(lena,lenb);b[1]=1; if(a1[0]=='-'&&a1[1]=='1'&&a1[2]=='\0'){printf("0 ");continue;} if(a1[0]=='-'){ flag=1; def(i,lena-1,1) a[++p]=a1[i]-48; lena--;p=0; } else ref(i,0,lena-1) a[lena-i]=a1[i]-48; if(!flag){ ref(i,1,lenc){ c[i]+=a[i]+b[i]; c[i+1]+=c[i]/10; c[i]%=10; } int j=lenc+1; while(c[j]==0&&j>1) j--; def(i,j,1) printf("%d",c[i]); printf(" "); } else{ printf("-");flag=0; ref(i,1,lena){ if(a[i]<b[i]){ a[i+1]--;a[i]+=10; } c[i]=a[i]-b[i]; } int j=lena+1; while(c[j]==0&&j>1) j--; def(i,j,1) printf("%d",c[i]); printf(" "); } } return 0; }
相关文章推荐
- 在lldb调试中调用c++函数
- sys.argv
- 基于Theano的多层神经网络及其实现(三)(实现代码)
- 使用libsvm中的svm_cross_validation函数进行交叉验证
- QT program tips
- 基于Theano的多层神经网络及其实现(二)
- Sprint第二个冲刺(第二天)
- hive的三板斧:内部表和外部表、分区和分桶以及序列化/反序列化(SerDe)
- permutation
- SQL-Server精简安装选项
- 第十五周阅读程序(4)
- 带三角形的dialog制作
- 级联函数
- Ceph-相关概念
- #码神心得_06# 运算符、循环流程控制、数组
- 基于Theano的多层神经网络及其实现(一)
- [知其然不知其所以然-28] Understanding hibernation - temporary mapping
- NSString 处理技巧:分割字符串
- Lua入门教程 2.类型与值
- 学习thinkphp中自带的http.class.php工具类