注册 登录
编程论坛 C语言论坛

C++实现求一个整数的K拆分乘积最大值

我莹莹 发布于 2020-10-07 20:13, 1083 次点击
在网上找的,怎么用不起来。大咖们帮忙看看,谢谢。

#include<iostream>                                                                                                                                                                        
using namespace std;                                                                                    
int main()
{                                                                                                   
   int num,result;                                                                                 
   cin>>num;                                                                                       
   if(num<2)                                                                                       
       result=0;                                                                                   
   if(num==2)                                                                                      
       result=1;                                                                                   
   if(num==3)                                                                                      
       result=2;                                                                                   
   if(num>3)                                                                                       
     {                                                                                               
     int* dp=new int[num+1];                                                                                                                                                               
     dp[1]=1;                                                                                       
     dp[2]=2;                                                                                       
     dp[3]=3;                                                                                       
     for(int i=4;i<=num;i++)                                                                        
     {                                                                                               
         int current_max=-1;                                                                        
         for(int j=1;j<=i/2;j++)                                                                     
         {                                                                                          
             if(dp[j]*dp[i-j]>current_max)                                                           
                 current_max=dp[j]*dp[i-j];                                                         
         }                                                                                          
         dp[i]=current_max;                                                                          
     }                                                                                               
         result=dp[num];                                                                             
                                                                                                     
     }                                                                                               
     cout<<result<<endl;                                                                             
     return 0;                                                                                       

}         

  提示这样的
1:188: fatal error: iostream: No such file or directory
 #include
                                                                                                                                                                                            ^
compilation terminated.
1 回复
#2
纯蓝之刃2020-10-08 14:05
#include<iostream>

int* dp=new int[num+1];

要在一行,不要换行
1