だいすうそうさ


         
#include <iostream>
#include <cstring>
using namespace std;
int num1[210]={0};
int num2[210]={0};
int ff(int num1[],int num2[],int len1,int len2)
{
if(len1<len2)
{
return -1;
}
if(len1==len2)
{
for(int i=len1-1;i>=0;i--)
{
if(num1[i]<num2[i])
return -1;
}
}
for(int i=0;i<len1;i++)
{
num1[i]=num1[i]-num2[i];
if(num1[i]<0)
{
num1[i] = num1[i]+10;
num1[i+1]--;
}
}
for(int i=len1-1;i>=0;i--)
{
if(num1[i]!=0)
{
return i+1;
}
}
return 0;
}
int main()
{
char str1[210];
char str2[210];
int result[210];
memset(result,0,sizeof(result));
cin>>str1>>str2;
int len1 = strlen(str1);
int len2 = strlen(str2);
for(int i=0;i<len1;i++)
{
num1[len1-1-i] = str1[i]-'0';


}
for(int i=0;i<len2;i++)
{
num2[len2-1-i] = str2[i]-'0';
}
int len = ff(num1,num2,len1,len2);
if(len<0)
{
cout<<"0"<<endl;
return 0;
}
else if(len == 0)
{
cout<<"1"<<endl;
return 0;
}
result[0]++;
int d = len-len2;
for(int i=len-1;i>=0;i--)
{
if(i>=d)
{
num2[i] = num2[i-d];
}
else
{
num2[i] = 0;
}


}
len2 = len;
for(int i=0;i<=d;i++)
{
int temp;
while((temp = ff(num1,num2+i,len,len2-i))>=0)
{
len = temp;
result[d-i]++;
}
}
for(int i=0;i<210;i++)
{
if(result[i]>=10)
{
result[i+1] += result[i]/10;
result[i] = result[i]%10;
}
}


int i=209;
while(result[i]==0)i--;
for(int j=i;j>=0;j--)
cout<<result[j];
cout<<endl;
return 0;


}