一个简单的程序 ,ACM高手快进 ;谢谢
题目就是1001 恩
地址是:http://acm.pku.edu.cn/JudgeOnline/problem?id=1001
我的程序是:
~~~~~~~~~~~~~~~~~~~
#include <iostream>
using namespace std;
int Length(int h)
{
int dot = 0 ;
while(h / 10 != 0)
{
h /= 10 ;
dot ++ ;
}
return dot + 1 ;
}
int main()
{
float n;
int b ;
int a[100000];
while( cin > > n > > b && ( b > 0 && b <= 25)&& (n > 0.0 && n <= 99.999))
{
int c,temp,len=1,i,j,k,l,m,e,f,g;
a[0] = 1;
for(f = 1; f < 100000;f++ )
{
a[f] = 0;
}
if( b == 1)
{
cout < < n < < endl;
continue ;
}
if( Length( (int)n) == 1)
{
i = 4 ;
n *= 10000 ;
}
else
{
i = 3 ;
n *= 1000 ;
}
for( j = 0 ; j < b; j++)
{
c = 0;
for( k = 0; k < len ; k ++)
{
temp = a[k]*n + c;
c = temp/10;
a[k] = temp%10;
}
while( c > 0)
{
len ++;
a[len - 1] = c;
c = c/10;
a[len - 1] = a[len - 1]%10;
}
}
for( g = 0 ; g < i*b ; g ++)
{
if( a[g] == 0)a[g] =99;
else break;
}
if( len < i * b )
{
cout < < ". ";
for( m = i*b-len -1; m > = 0;m-- )
{
cout < < "0 ";
}
for( e = len - 1;e > = 0;e--)
{
if(a[e] == 99)break;
cout < < a[e];
}
}
else {
for( l = len - 1;l > = 0; l--)
{
if(a[l] == 99)break;
if( l == i*b -1 )
{
cout < < ". ";
cout < < a[l];
l--;
}
cout < < a[l];
}
}
cout < < endl;
}
return 0;
}
那里有问题 怎么个改法??高手帮帮忙??
[解决办法]
这个哦。。我有=下