码迷,mamicode.com
首页 > 编程语言 > 详细

【C++】hpc.h

时间:2016-03-30 14:38:39      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

#ifndef HPC_H
#define HPC_H

#include<string>
using std::string;
using std::cout;
using std::endl;

//类型定义 
struct fuk
{
    int len,a[510];
    fuk()
    {
        len=0;
        memset(a,0,sizeof(a));
    }
};
//内部函数 

int maxer(int x,int y)
{
    return x>y?x:y;
}

int miner(int x,int y)
{
    return x>y?y:x;
}


fuk h_p_i(fuk a,fuk b)
{
    fuk c;
    c.len=maxer(a.len,b.len);
    for(int i=1;i<=c.len;i++)
        c.a[i]=a.a[i]+b.a[i];
        
    for(int i=1;i<=c.len;i++)
    {
        c.a[i+1]+=c.a[i]/10;
        c.a[i]%=10;
    }
    
    int i=c.len;while(c.a[i+1]>0)
    {
        i++;
        c.a[i+1]=c.a[i+1]+c.a[i]/10;
        c.a[i]=c.a[i]%10;
    }
    
    while(c.a[i]==0 and i>1) i--;
    c.len=i;
    return c;
}

fuk h_2N_i(fuk xx)
{
    fuk ans;
    ans.len=xx.len;
    for(int i=1;i<=ans.len;i++)
        ans.a[i]+=xx.a[i]*2;
    
    for(int i=1;i<=ans.len;i++)
    {
        ans.a[i+1]+=ans.a[i]/10;
        ans.a[i]%=10;
    }
    
    int i=ans.len;
    while(ans.a[i+1]>0)
    {
        i++;
        ans.a[i+1]+=ans.a[i]/10;
        ans.a[i]%=10;
    }
    
    while(ans.a[i]==0&&i>0) i--;
    ans.len=i;
    return ans;
}

float AdvSqrt(float x)
{
    float xhalf=0.5f*x;
    int i=*(int*)&x;
    i=0x5f375a86-(i>>1);
    x=*(float*)&i;
     x=x*(1.5f-xhalf*x*x);
    x=x*(1.5f-xhalf*x*x);
    x=x*(1.5f-xhalf*x*x);
    return 1/x;
}



//外部接口 
/*string h_p(string a,string b)
{
    
}*/

fuk strtofuk(string s)
{
    fuk f;
    f.len=s.size();
    for(int i=0;i<=f.len-1;i++)
        f.a[i]=s[i];
    return f;
}

string fuktostr(fuk f)
{
    string s;
    char c[f.len+1];
    
    for(int i=0;i<=f.len-1;i++)
        c[i]=f.a[i+1]+0;
    s=c;
    return s;
}

#endif

 

【C++】hpc.h

标签:

原文地址:http://www.cnblogs.com/Zory/p/5336924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!