zoukankan      html  css  js  c++  java
  • Exponentiation(1001)

    #include <iostream>
    #include <vector>
    #include <string>
    #include <algorithm>
    using namespace std;

    void main()
    {
    string num;
    string strset1=".";
    string strset2="0";
    int n;
    int wei;
    int sum_wei;

    cin>>num>>n;

    int first=num.find_first_of(strset1);
    if (first==string::npos)
    {
    wei=0;
    }
    else
    {
    wei=5-first;
    num=num.substr(0,first)+num.substr(first+1);
    }
    first=num.find_first_not_of(strset2);
    num=num.substr(first);
    sum_wei=n*wei;

    int i,j,k;
    vector<char> vec;
    for (i=0;i<num.size();i++)
    {
    vec.push_back(num.at(i));
    }

    vector<char> res;
    res=vec;
    vector<int> temp(num.size()*(n+1),0);
    vector<char> result(num.size()*(n+1),0);

    for (k=0;k<n-1;k++)
    {
    for (i=0;i<temp.size();i++)
    {
    temp.at(i)=0;
    result.at(i)=NULL;
    }

    for (i=0;i<vec.size();i++)
    {
    for (j=0;j<res.size();j++)
    {
    temp.at(i+j+1)+=(vec.at(i)-'0')*(res.at(j)-'0');
    }
    }
    for (i=vec.size()+res.size()-1;i>=0;i--)
    {
    if (temp.at(i)>=10)
    {
    temp.at(i-1)+=temp.at(i)/10;
    temp.at(i)%=10;
    }
    }

    i=0;
    while (temp.at(i)==0)
    i++;
    for (j=0;i<res.size()+vec.size();i++,j++)
    {
    result.at(j)=temp.at(i)+'0';
    }

    res=result;
    for (i=res.size()-1;i>=0;i--)
    {
    if (res.at(i)==NULL)
    {
    res.pop_back();
    }
    }
    }

    vector<char>::iterator it;
    int diff=0;
    if (sum_wei!=0)
    {
    if (sum_wei<res.size())
    {
    it=res.end();
    res.insert(it-sum_wei,1,'.');
    }
    if (sum_wei==res.size())
    {
    it=res.begin();
    res.insert(it,1,'.');
    }
    if (sum_wei>res.size())
    {
    it=res.begin();
    diff=sum_wei-res.size();
    res.insert(it,diff,'0');
    res.insert(res.begin(),1,'.');
    }
    }

    for (i=res.size()-1;i>=0;i--)
    {
    if (res.at(i)=='0')
    {
    res.pop_back();
    }
    else
    break;
    }

    copy(res.begin(),res.end(),ostream_iterator<char>(cout,""));
    cout<<endl;

    }
  • 相关阅读:
    基于select的IO多路复用并发模型
    (p ython +tcp+tcp)文件传输
    udp协议与进程结合(群聊)
    python递归拷贝目录和线程拷贝目录
    利用线程对文件进行分割
    tcp与线程结合
    tcp 文件传输
    mysql数据库 (使用) 测试题
    json写入文件
    ArcEngine——获取要素几何(非游标方式)
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2343215.html
Copyright © 2011-2022 走看看