XDOJ1229 - A Game
来源:互联网 发布:淘宝网迷你冰箱 编辑:程序博客网 时间:2024/06/11 13:04
Description
仔细看下面的图。然后给你两个数,你的任务是输出第三个数。
Input
第一行一个整数T(1<=T<=30),表示数据的组数;
每组数据两个整数 A,B (1<=B<=A<=10^100);
每组数据两个整数 A,B (1<=B<=A<=10^100);
Output
输出一个整数。
Sample Input
3
99 72
45 27
39 18
99 72
45 27
39 18
Sample Output
27
18
21
18
21
解题思路:
开始以为只是大整数的减法,后来总是WA,上网一查才明白,原来是每个数年各个位相加的和。下面是写的大整数的减法,留个纪念吧
#include<iostream>#include<string>#include<iomanip>using namespace std;const int D = 17;const long long maxN = 1000000000000000000;long long numA[D];long long numB[D];void zeroArr(long long a[]){ for(int i=0;i<D;++i) a[i] = 0;}int strToArr(string str,long long a[]){ int len = str.length(); long long factor =1; int k = 0; a[k] = 0; for(int i=len-1;i>=0;--i) { if(factor==maxN) { ++k; factor = 1; } int t = str[i]-'0'; a[k] += t*factor; factor *= 10; } return k+1;}void ArrMinus(long long a[],int lena,long long b[],int lenb){ for(int i=lena-1;i>=0;--i) { if(b[i]<=a[i]) a[i] = a[i]-b[i]; else { int j = i+1; while(a[j]==0) ++j; --a[j]; --j; while(j>i) { a[j] += maxN-1; --j; } a[i] += maxN; a[i] = a[i]-b[i]; } }}void print(long long a[],int len){ int i = len-1; while(a[i]==0&&i>=0) --i; if(i==-1) cout<<0<<endl; else { cout<<a[i]; --i; for(;i>=0;--i) cout<<setw(D+1)<<setfill('0')<<a[i]; cout<<endl; }}int main(){ int caseN; cin>>caseN; for(int m=0;m<caseN;++m) { string Astr,Bstr; cin>>Astr>>Bstr; zeroArr(numA); zeroArr(numB); int len1 = strToArr(Astr,numA); int len2 = strToArr(Bstr,numB); ArrMinus(numA,len1,numB,len2); print(numA,len1); } return 0;}
正确程序:
#include<iostream>#include<string>#include<iomanip>using namespace std;int main(){ int caseN; cin>>caseN; for(int m=0;m<caseN;++m) { string strA,strB; cin>>strA>>strB; int sum; sum = 0; for(int i=0;i<strA.length();++i) sum += strA[i]-'0'; for(int i=0;i<strB.length();++i) sum += strB[i]-'0'; cout<<sum<<endl; } return 0;}
0 0
- XDOJ1229 - A Game
- A Game
- A Game
- A. Game
- A. Game
- A Simple FPS Game
- UESTC1141 A Simple Game
- 1087. A Funny Game
- [院赛]A number game
- A Multiplication Game
- usaco A Game
- hdu4061 A Card Game
- 1087. A Funny Game
- usaco training-A Game
- USACO 3.4 A Game
- A Coin Game
- usaco --A Game--game1
- usaco 3.3 A Game
- switch内部的变量定义
- JVM性能优化:垃圾收集
- 在非主线程里处理bitmap
- 长按手势删除tableView选中的行
- ZOJ 3623 —— Battle Ships(DP)
- XDOJ1229 - A Game
- OpenCV基础篇之像素访问
- Objective-C——消息、Category和Protocol
- Linux线程属性
- Http状态代码
- UVA 11796Dog Distance
- 使用Pspice进行电路仿真
- 垃圾收集算法
- static和const的区别和用处