Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- string add(string a,string b)
- {
- if(a.length()>b.length())
- swap(a,b);
- string ans="";
- int len1=a.length();
- int len2=b.length();
- reverse(a.begin(),a.end());
- reverse(b.begin(),b.end());
- int i,j,k,sum=0,carry=0;
- for(i=0;i<len1;i++)
- {
- sum=((a[i]-'0')+(b[i]-'0'))+carry;
- ans.push_back((sum%10)+'0');
- carry=sum/10;
- }
- for(i=len1;i<len2;i++)
- {
- sum=((b[i]-'0'))+carry;
- ans.push_back((sum%10)+'0');
- carry=sum/10;
- }
- if(carry)
- ans.push_back(carry+'0');
- reverse(ans.begin(),ans.end());
- return ans;
- }
- string mul(string a,int n)
- {
- string s;
- int len=a.size()-1,carry=0,x;
- while(len>=0)
- {
- x=(a[len]-'0')*n+carry;
- s+=x%10+'0';
- carry=x/10;
- len--;
- }
- while(carry)
- {
- s+=(carry%10)+'0';
- carry/=10;
- }
- reverse(s.begin(),s.end());
- return s;
- }
- int main()
- {
- int n,A,i,j,k;
- string sum,res,ans;
- while(cin>>n>>A)
- {
- res.clear();
- sum.clear();
- ans.clear();
- if(A==0)
- {
- cout<<0<<endl;
- continue;
- }
- int a,b,c,d,e;
- b=A;
- while(A)
- {
- sum+=A%10+'0';
- res+=A%10+'0';
- A/=10;
- }
- reverse(sum.begin(),sum.end());
- reverse(res.begin(),res.end());
- for(i=2;i<=n;i++)
- {
- sum=mul(sum,b);
- ans=mul(sum,i);
- res=add(ans,res);
- }
- cout<<res<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement