问题 D: 【高精度】减法神童
时间限制: 1 Sec 内存限制: 64 MB
提交: 7 解决: 5
[提交] [状态] [讨论版] [命题人:外部导入]
题目描述
在科学城里住着一位减法神童,他可以在一秒钟内算出两个数相减的结果。这两个数可不是普通的数字,它们是11位以上的“宠然大物”。为了证明自己神奇的计算能力,减法神童请全城的人都来出题考自己,只要答错一题他就自愿放弃“减法神童”的称号。
你想考考减法神童吗?还是先编写一个程序帮我们算出任意两个11位以上的数相减的精确结果吧。
输入
第1行是被减数A,第2行是减数B(A,B的位数大于11,小于200)。
输出
A-B的结果。
样例输入
5894379463257 1245648324567
样例输出
4648731138690
1 #include <iostream> 2 #include<string> 3 #include<algorithm> 4 using namespace std; 5 string s,t; 6 int a[5005],b[5005],c[5005]; 7 int main() 8 { 9 cin>>s>>t; 10 int len1=s.size(),len2=t.size(); 11 for(int i=len1-1;i>=0;i--) 12 a[len1-i-1]=s[i]-‘0‘; 13 for(int i=len2-1;i>=0;i--) 14 b[len2-i-1]=t[i]-‘0‘; 15 int len=max(len1,len2); 16 for(int i=0;i<len;i++) 17 { 18 c[i]+=(a[i]+b[i]); 19 if(c[i]>9) 20 { 21 c[i]-=10; 22 c[i+1]++; 23 } 24 } 25 if(c[len]!=0) 26 { 27 len++; 28 } 29 for(int i=len-1;i>=0;i--) 30 cout<<c[i]; 31 cout<<endl; 32 return 0; 33 }
原文地址:https://www.cnblogs.com/scott527407973/p/9314501.html
时间: 2024-10-06 00:53:26