https://codeforces.com/problemset/problem/584/A
高精度写法
#include<bits/stdc++.h>
using namespace std;
vector<int>ve;
vector<int> mul(vector<int> A,int b)
{
int t=0;
vector<int>C;
for(int i=0;i<A.size()||t;i++)
{
if(i<A.size()) t+=A[i]*b;
C.push_back(t%10);
t/=10;
}
while(C.size()>1&&C.back()==0) C.pop_back();
return C;
}
bool flag=false;
int main(void)
{
int n,t; cin>>n>>t;
ve.push_back(1);
while(1)
{
ve=mul(ve,t);
if(ve.size()==n)
{
flag=true;
break;
}
if(ve.size()>n) break;
}
if(flag)
{
for(int i=ve.size()-1;i>=0;i--) cout<<ve[i];
}
else puts("-1");
}
分析过后可以得出
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int n,t; cin>>n>>t;
if(n==1&&t==10)
{
puts("-1");
return 0;
}
if(t!=10)
{
for(int i=1;i<=n;i++) cout<<t;
return 0;
}
else
{
cout<<1;
for(int i=1;i<n;i++) cout<<0;
}
}