首页 > 试题广场 >

计算机中处理乘法的指令要比加法复杂的多, 因为在一些关键系统

[问答题]
计算机中处理乘法的指令要比加法复杂的多, 因为在一些关键系统中我们常常会考虑如何尽可能减少乘法的运算。
现在有如下的表达式
y= anxn+an-1xn-1 +…..+a1x +a0
其中an, an-1, ….a1, a0是常数, 给一个x, 要求尽快算出y的值。请尝试写出这样的一个函数。
推荐
思路: 
F0=an;
F1=anx+an-1
Fn=xF(n-1)+an-1
代码:    
function sum(int a[], int n, int x){
    s=a[n]
    for(int i=1; i<=n; i++){
        s += x*s + a[n-i]
    }
    return s;
}

编辑于 2015-01-17 12:04:44 回复(3)
mem = [0]*n
def fn(x,n):
    if n==0:return 1
    elif mem[n]!=0:return mem[n]
    else:
         mem[n] = fn(n-1)*x
          return mem[n]
def func(arr,x,n):
    sum = 0
    for i in range(n+1):
     sum += arr[i]*fn(x,i)
   return sum
编辑于 2017-03-12 12:29:14 回复(0)
public static int miltX(int X, int[] a){
	int sum = 0;
	int temp = 1;
	int n = a.length;
	for(int i=0; i<n; i++){
		sum  += a[i]*temp;
		temp *= X;
	}
	return sum;
}

发表于 2015-07-29 22:14:38 回复(0)
90头像 90
double multiply(x)
{
    double y = 0;
    double tmp = 1;
    double a[n] = {...};
    for (int i = 0; i < n; ++i)
    {
        y = y + a[i] * tmp;
        tmp *= x;
    }
    return y;
}

发表于 2015-04-07 15:45:21 回复(0)
int fun(int x,int n)
{
    for(int i=0;i<=n;i++)
    {
        int *p;
        int a[n+1]={a0,a1,...,an};
        p=a;
        int sum=0;
        sum+=(*(p+i))*huan(int i, int x);
    }
    return sum;
}
int huan(int i, int x)
{
    if(i=0)
        return 1;
    else
    {
        for(int j=0;j<i;j++)
        {
            int m=1;
            m*=x;
        }
    } 
    return m;
}

编辑于 2015-01-17 12:03:27 回复(0)
int f(int* a, int n, x) {
    int res = 0;
    while (int n > 0) {
        res = res * x + a[n-1];
        n--;
    }
    return res;
}
发表于 2014-12-09 19:37:30 回复(0)
int number(int[] a, int x)
{
    int length = a.length;
    int total = a[length - 1];
    for(int i = length - 1; i > 0; i--)
    {
        total = total * x + a[i - 1];
    }
    return total;
}
发表于 2014-12-03 22:51:27 回复(0)
撒头像
sadc sad cs
发表于 2014-11-18 20:12:01 回复(0)