POJ 1001 Exponentiation 高精度小数相乘

    好吧,又一轮刷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);
   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值