1169:大整数減算


1169:大整数減算
【題名の説明】2つの大きい正の整数の減算の差を求めます.
【入力】2行目、1行目は被減数a、2行目は減数b(a>b)です.各大きい整数は200ビットを超えず、余分な先頭ゼロはありません.
【出力】1行、すなわち求めた差.
分析:
コード#コード#
#include 
using namespace std;
const int LN=202;
int a[LN],b[LN],c[LN];

int main(){
	string s1,s2;
	cin>>s1>>s2;
	a[0]=s1.length();
	for(int i=1;i<=a[0];i++) a[i]=s1[a[0]-i]-'0';
	b[0]=s2.length();
	for(int i=1;i<=b[0];i++) b[i]=s2[b[0]-i]-'0'; 
	
	int i;
	for(i=1;i<=a[0];i++){
		c[i]=10+a[i]-b[i]-c[i];
		if(c[i]<10) c[i+1]=1;
		c[i]%=10;	}
	
	while(!c[i] && i>=1) i--;
	c[0]=i;
	
	for(i=c[0];i>=1;i--) 
		cout<<c[i];
	return 0;		
}

結果
【入力サンプル】999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
NO