程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 數組乘積--滿足result[i] = input數組中除了input[i]之外所有數的乘積(假設不會溢出

數組乘積--滿足result[i] = input數組中除了input[i]之外所有數的乘積(假設不會溢出

編輯:C++入門知識

數組乘積(15分)
輸入:一個長度為n的整數數組input
輸出:一個長度為n的整數數組result,滿足result[i] = input數組中除了input[i]之外所有數的乘積(假設不會溢出)。比如輸入:input = {2,3,4,5},輸出result = {60,40,30,24}
程序時間和空間復雜度越小越好。

  
      
  
      
 #include <stdio.h>  
 
  pr_arr( arr[],           ( i=;i<n;i++          printf(      printf(  
  arrayMultiply( input[], result[], n)
      (n<=)      result[]=          ( i =;i<n;i++) 
          result[i]=result[i-]*input[i-       q=     ( i=n-;i>=;--i) 
          q*=input[i+         result[i]*=     main(      s[]={,,,,,,      n=(s)/( 
      *result =          }  

 

輸入:一個長度為n的整數數組input
輸出:一個長度為n的整數數組result,滿足result[i] = input數組中除了input[i]之外所有數的乘積(假設不會溢出)。比如輸入:input = {2,3,4,5},輸出result = {60,40,30,24}
程序時間和空間復雜度越小越好。
C/C++:
int *cal(int* input , int n);

Java:
int[] cal(int[] input);

int *cal(int* input , int n)   
{   
    int i ;   
    int *result = new int[n];   
    result[0] = 1;   
    for(i = 1 ; i < n ; ++i)   
        result[i] = result[i-1]*input[i-1];   
    result[0] = input[n-1];   
    for(i = n-2 ; i > 0 ; --i)   
    {   
        result[i] *= result[0];   
        result[0] *= input[i];   
    }   
    return result;   
}   

 測試代碼:

#include<iostream>
using namespace std;

int *cal(int *input , int n)
{
	int i;
	int *result = new int[n];
	result[0] = 1;
	for(i = 1 ; i < n ; ++i){
		result[i] = result[i - 1] * input[i - 1];
	}
	result[0] = input[n - 1];
	for(i = n - 2 ; i > 0 ; --i){
		result[i] *= result[0];
		result[0] *= input[i];
	}
	//return result;
	for(int i = 0 ; i < n ; ++i)
		cout<<result[i]<<",";
	cout<<endl;
	return 0;
}

int main()
{
	int input[] = {2 , 3 , 4 , 5};
	int length = sizeof(input) / sizeof(int);		
	*cal(input , length);

	return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved