pow.h
来自「实现了任意长度整数的加减乘除以及成n次方运算」· C头文件 代码 · 共 48 行
H
48 行
#include<stdio.h>
#include"MULTIPLY.h"
long DivByTwo(long num)
{
long i;
for( i=0; num > 1; i++ )
{
num = num/2;
}
return i;
}
struct head *Pow(struct head *headnode, long num)
{
struct head *headbuffer = new struct head;
CreatandStore(headbuffer, 1);
struct head *headforstore = new struct head;
headforstore->right = headnode->right;
headforstore->left = headnode->left;
int m;
for(int i=0; num>1; i++)
{
m = DivByTwo(num);
num = num - lpow(2,m);
for(int j=0; j<m; j++)
{
headnode = Multiply(headnode, headnode);
}
headbuffer = Multiply(headnode, headbuffer);
headnode->right = headforstore->right;
headnode->left = headforstore->left;
}
if(num==1)
{
headbuffer = Multiply(headbuffer, headforstore);
}
SetNoofDigits(headbuffer);
SetNoofNode(headbuffer);
return headbuffer;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?