📄 zhengshu.java
字号:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.*;
public class zhengshu {
/**
* @param args
*/
public static String S="";
public static void main(String[] args) throws NumberFormatException, IOException {
int N = 0,K = 0;
try{//读入文件中的数据
FileReader filereader=new FileReader("D:\\shuru.txt");
BufferedReader reader=new BufferedReader(filereader);
String s="";
s=reader.readLine();//掌握这种输入方法
String[] str=s.split(" ");
N=Integer.valueOf(str[0]);
K=Integer.valueOf(str[1]);
if(N<K){
System.err.println("数据错误!");
System.exit(1);
}
if((s=reader.readLine())!=null){//存储十进制数
S=s;
if(S.length()<N){
System.err.println("数据与位数不匹配!");
System.exit(0);
}
}
reader.close();
}catch(FileNotFoundException e){
System.err.println("文件没有找到!");
System.exit(1);
}
try{ //存储计算结果到文件
FileWriter filewriter=new FileWriter("D:\\shuchu.txt");//实现数据输出到文本文件
BufferedWriter writer=new BufferedWriter(filewriter);
int result=0;
result=solve(N,K);
System.out.println(result);
String sresult=Integer.toString(result);
writer.write(sresult);
writer.close();
}catch(FileNotFoundException e)
{
File f=new File("D:\\shuchu.txt");
System.exit(0);
}
}
public static int conv(int x,int y){//求划分的字段的十进制数值
// TODO Auto-generated method stub
String str=S.substring(x,x+y);
int a=Integer.parseInt(str);
return a;
}
public static int solve(int n,int m){//求n位数的m乘积
int i,j,k;
int temp,maxt;
int f[][]=new int[n+1][m+1];
for(i=1;i<=n;i++) f[i][1]=conv(0,i);//conv(i,j)表示从i位开始的j位数字组成的十进制数
for(i=2;i<=n;i++)//计算i位数的j乘积
for(j=2;(j<=i)&&(j<=m);j++){
for(k=1,temp=0;k<i;k++){
maxt=f[k][j-1]*conv(k,i-k);
if(temp<maxt)temp=maxt;
}
f[i][j]=temp;
}
return f[n][m];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -