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;

    }
  • 相关阅读:
    java快速排序代码
    java操作redis实现和mysql数据库的交互
    python 操作mysql数据库存
    JAVA 操作远程mysql数据库实现单表增删改查操作
    URI和URL及URN的区别
    day06_字符集设置
    day6_oracle手工建库
    day08_SGA后半部分
    day08_存储
    day05_sqlloader基础
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2343215.html
Copyright © 2011-2022 走看看