maxk.cpp

来自「最大K乘积大家看着用吧 多余的就不多说了」· C++ 代码 · 共 70 行

CPP
70
字号
// maxk.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream.h"
#include "stdio.h"
 int putnum;
 int f[99][99];
 int ka[99][99];
 int n,m;
 conv(int i,int w)
 {
	 int j=i+w;
	 int q=10;
	 int p=10;
	 for(int m=2;m<=n-j;m++)
	 {
		 q=q*10;
	 }
	 if(j==n)
	 {
		 q=1;
	 }
	 for(m=2;m<=j-1;m++)
	 {
		 p=p*10;
	 }
	 int pass=putnum/q%p;
	 return pass;
 }
 void solve(int n,int m)
 {
	 int i,j,k;
	 int temp,maxn,nk=0;
	 for(i=1;i<=n;i++)
		 f[i][1]=conv(0,i);
	 for(j=2;j<=m;j++)
		 for(i=j;i<=n;i++)
		 {
			 for(k=1,temp=0;k<i;k++)
			 {
				 maxn=f[k][j-1]*conv(k,i-k);
				 if(temp<maxn)
				 {
					 temp=maxn;nk=k;
				 }
			 }
		 f[i][j]=temp;ka[i][j]=nk;
		 }
 }

int main(int argc, char* argv[])
{
while(1)
{
	cout<<"input nimber putnum"<<endl;
	cin>>putnum;
	cout<<"your number length is"<<endl;
	cin>>n;
	cout<<"how much do you want to cover up?"<<endl;
	cin>>m;
	solve(n,m);
	cout<<(f[n][m])<<endl;
}
	



}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?