| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
过了你这几组数据还是错了In Reply To:Re:贴一个改了N次才提交上的考虑了所有异常输入输出的代码给大家看看,附上几组测试数据 Posted by:lisanhu at 2016-07-24 18:24:14 #include <iostream>
#include<cstring>
using namespace std;
int la;
void gaocheng(int* a,int* b,int lb)
{
int i,j;
//la=string(a).length();
//lb=string(b).length();
int* s=new int[150];
for (i=1;i<=la+lb;i++)
s[i]=0;
for (i=1;i<=la;i++)
for (j=1;j<=lb;j++)
s[i+j-1]+=a[i]*b[j];
la=la+lb;
for (i=1;i<=la;i++)
{
s[i+1]+=s[i]/10;
a[i]=s[i]%10;
}
while (a[la]==0)
la--;
delete[] s;
}
int main()
{
char m[15];
int n,l,j,i,k,lb,f,a[150],b[10];
while (cin>>m>>n)
{
k=0;
l=string(m).length();
la=1;
lb=1;
f=1;
if (m[0]=='0')
{
f=0;
if (l==1)
{
cout<<'0';
k=1;
}
}
if (n==0)
{
cout<<'1';
k=1;
}
if (k==0)
{
for(i=l-1;i>=0;i--)
if (m[i]=='0')
l--;
else
break;
for (i=l-1;i>=0;i--)
if (m[i]!='.')
{
a[la++]=m[i]-'0';
b[lb++]=m[i]-'0';
}
else
k=la-1;
la--;
lb--;
if (f==0)
{
la--;
lb--;
}
k*=n;
j=k;
for (i=0;i<n-1;i++)
gaocheng(a,b,lb);
if (f==1)
for (i=la;i>k;i--)
cout<<a[i];
else cout<<'0';
for (i=1;i<=k;i++)
if (a[i]==0)
j--;
else
break;
if (j!=0) cout<<'.';
if (f==0)
{
for(i=1;i<=j-la;i++)
cout<<'0';
for(i=la;i>0;i--)
cout<<a[i];
}
if(f==1)
for (i=j;i>0;i--)
cout<<a[i];
}
cout<<endl;
}
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator