2016-01-22 22 views
1

的“N”整数数组的数组求解方程,有必要计算下一个公式:与循环

у = х1 * (х1 + х2) * (х1 + х2 + х3) * ... * (x1 + ... + xN) 

我有两个问题:

  1. 有没有更好的寻找解决方案的方法y
  2. 如何生成除0之外的随机数?

代码:

srand(time(NULL)); 
const int size = 10; 
int arr[size]; 
int pro=1; 
for (int i = 0; i < size; i++) 
{ 
    arr[i] = rand() % 10; 
} 
for (int i = 0; i < size; i++) 
{ 
    cout << arr[i] << ' '; 
} 

cout << endl; 

for (int i = 0; i < size; i++) 
{ 
    int sum = 0; 

    for (int j = 0; j <= i; j++) 
    { 
     sum = arr[j]; 
    } 
    pro *= sum; 
} 
cout << pro << endl; 
+1

'总和= ARR [J];'大概应该是'总和+ = ARR [J];' – AndyG

+0

你所说的'了解你如何生成除0之外的随机数?'这是一个答案:'arr [i] = 1 +(rand()%9);'? – PiotrNycz

+0

我的意思是如何用除0之外的随机数填充数组? –

回答

1

如何产生,除了0的随机数?

arr[i] = rand() % 9 + 1; // rando number in range 1 .. 9 

是否有更好的方法来找到解y?

long pro = 1; 
long sum = 0; 
for (int i = 0; i < size; i++) 
{ 
    sum += arr[i]; // i==0: x1, i==1: x1+x2, i==3: x1+x2+x3, .... 
    pro *= sum; 
} 

这应该是你的代码:

srand(time(NULL)); 
const int size = 10; 
int arr[size]; 
for (int i = 0; i < size; i++) 
    arr[i] = rand() % 9 + 1; 

for (int i = 0; i < size; i++) 
    cout << arr[i] << ' '; 

cout << endl; 

long pro = 1; 
long sum = 0; 
for (int i = 0; i < size; i++) 
{ 
    sum += arr[i]; 
    pro *= sum; 
} 
cout << pro << endl; 
+0

谢谢..这就是我的意思 –