好吧,又一轮刷POJ,之前欠下的债现在还上,前面还有个1001没做,看着摆在那总觉得不舒服= =虽然觉得麻烦......好吧,终究还是要写的。
题意很简单,就是给你一个小数,然后求他的n次幂,麻烦就麻烦在高精度的还要写小数= =高精度的模板之前倒是打过,不过这个是小数,所以还要把对小数的处理加上。写这一步倒是花的时间比我预料中的要少,毕竟小数相乘,先处理好一开始的小数点后面有几位。最后结果的小数点后位数就是乘以n,再处理一下0就好了。不过这题最后处理格式弄晕了= =如果后面有小数前面是0就不用写0了,如果后面没有就不输出小数点了,比如结果是“0.01”就是“.01”,结果是“12”就是“12”,结果是“0.0”的话输出就是“0”。这些处理完之后还是WA了,才发现没有处理n是1的情况,好吧,百度到一个“10.000 1”的例子才发现了这个问题.....所以改来改去一会这加点一会那加点的,代码就弄的挺长了......
总之A了就好~
下面代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char shu[1005];
char ans[1005];
int n;
char mus[1005];
int multiply(char* a1,char* b1)
{
memset(mus,0,sizeof(mus));
int i,j,k;
int len,len1,len2;
len1=strlen(a1);