首页 > 其他 > 详细

[洛谷]P1517 高精求小数幂

时间:2019-10-12 22:08:28      阅读:169      评论:0      收藏:0      [点我收藏+]

[洛谷]P1517 高精求小数幂

题目描述:

技术分享图片

代码:


#include <bits/stdc++.h>
using namespace std;

string s;
int n,ans[11000];

int main(int argc, char const *argv[])
{
    while(cin>>s>>n)
    {
        int a[55],b[11000],ans[11000];
        int xsd=0,len=s.size()-1;
        for(int i=0,pos=s.size()-1;i<s.size();i++,pos--)
        {
            if(s[i]=='.')
            {
                pos++;
                xsd+=s.size()-i-1;
                continue;
            }
            b[pos]=a[pos]=s[i]-'0';
        }
        xsd*=n,n--;
        while(n--)
        {
            memset(ans,0,sizeof(ans));
            for(int i=1;i<=s.size()-1;i++)
                for(int j=1;j<=len;j++)
                {
                    int pos=i+j-1,ttt=ans[pos]+(b[j]*a[i]);
                    ans[pos]=ttt%10;
                    ans[pos+1]+=ttt/10;
                }
            if(ans[len+s.size()-1])
                len+=s.size()-1;
            else
                len+=s.size()-2;
            for(int i=1;i<=len;i++)
                b[i]=ans[i];
        }
        int left=len,right=1;
        while(left>xsd && b[left]==0)
            left--;
        while(right<=xsd && b[right]==0)
            right++;
        for(int i=left;i>=right;i--)
        {
            if(i==xsd )
                cout<<".";
            cout<<b[i];
        }
        cout<<endl;
    }
    return 0;
}

[洛谷]P1517 高精求小数幂

原文:https://www.cnblogs.com/wjsoj/p/11664031.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!