当前位置:首页 » 操作系统 » java算法题目

java算法题目

发布时间: 2023-09-11 13:43:08

① 这道算法题怎么解,用java语言解题

做了一下,代码如下,楼主可以验证看看,有不对的地方可以找我改:

importjava.io.IOException;
importjava.util.Scanner;
publicclassTest{
publicstaticvoidmain(String[]args)throwsIOException{
Scannersc=newScanner(System.in);
System.out.print("请输入2个整数(以,隔开):");
Stringstr=sc.nextLine();
intn=Integer.parseInt(str.split(",")[0]),m=Integer.parseInt(str.split(",")[1]),flag=0;
longnum=(long)Math.pow(10,n);
int[]numArray=newint[m];
StringtempA="",tempB="";
for(inti=0;i<m;i++){
System.out.print("请输入第"+(i+1)+"个整数:");
numArray[i]=sc.nextInt();
tempA=numArray[i]+"";
flag=0;
for(intj=0;j<i;j++){
tempB=numArray[j]+"";
if(tempA.startsWith(tempB)){
flag=1;
break;
}elseif(tempB.startsWith(tempA)&&tempB.length()!=tempA.length()){
flag=1;
num-=(long)Math.pow(10,n-tempA.length())-(long)Math.pow(10,n-tempB.length());
break;
}
}
if(flag==0)num-=(long)Math.pow(10,n-tempA.length());
}
System.out.println(num);
}
}

示例1:

请输入2个整数(以,隔开):7,3
请输入第1个整数:0
请输入第2个整数:1
请输入第3个整数:911
7990000

示例2:

请输入2个整数(以,隔开):10,3
请输入第1个整数:0
请输入第2个整数:1
请输入第3个整数:911
7990000000

示例3:

请输入2个整数(以,隔开):3,2
请输入第1个整数:1
请输入第2个整数:11
900

楼主若觉得有所帮助,望采纳,谢谢!

② JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合。

按照你的要求编写的求x,y指定长度的所有排列组合的Java程序如下

importjava.util.ArrayList;
importjava.util.List;
publicclassEE{
publicstaticvoidcombination(List<String>list,StringsNumbers,StringsPath,intALen)
{
if(sPath.length()==ALen)
{
list.add(sPath);
return;
}
for(inti=0;i<sNumbers.length();i++)
{

combination(list,sNumbers,sPath+sNumbers.substring(i,i+1),ALen);
}
}
publicstaticvoidmain(String[]args){
List<String>output=newArrayList<String>();
System.out.println("组合");
combination(output,"xy","",5);
for(Strings:output)
System.out.print(s+"");
System.out.println();
System.out.println("共"+output.size()+"个");
}
}

运行结果

组合

xxxxx xxxxy xxxyx xxxyy xxyxx xxyxy xxyyx xxyyy xyxxx xyxxy xyxyx xyxyy xyyxx xyyxy xyyyx xyyyy yxxxx yxxxy yxxyx yxxyy yxyxx yxyxy yxyyx yxyyy yyxxx yyxxy yyxyx yyxyy yyyxx yyyxy yyyyx yyyyy

共32个

③ JAVA算法题目:int数组内取数相加凑数

public class Que1 {
Vector<Vector<Integer>> all = new Vector<Vector<Integer>>();
int[] array = new int[] { 460, 588, 720, 1250, 1800, 2200, 3080, 4100,
4375, 5184, 6510, 6900, 9000 };

public Que1() {
for (int i = 0; i < array.length; i++) {
Vector<Integer> v = new Vector<Integer>();
pro(v, i);
}
for (int i = 0; i < all.size(); i++) {
System.out.println(all.get(i).toString());
}
}

private boolean pro(Vector<Integer> v, int index) {
v.add(array[index]);
int sum = sum(v);
if (sum <= 13750) {
if (sum == 13750) {
all.add((Vector<Integer>) v.clone());
v.remove(v.size() - 1);
return true;
}
for (int i = index + 1; i < array.length; i++) {
if (!pro(v, i)) {
break;
}
}
v.remove(v.size() - 1);
return true;
} else {
v.remove(v.size() - 1);
return false;
}
}

private int sum(Vector<Integer> v) {
int sum = 0;
for (int i = 0; i < v.size(); i++) {
sum += v.get(i);
}
return sum;
}

public static void main(String arg[]) {
new Que1();
}

}

④ java经典算法题——猴子吃桃

public class Monkey
{
public static void main(String[] args)
{
int sum=0,remain=1;
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
for(int day=9;day>=1;day--)
{
sum=(remain+1)*2;
remain=sum;
System.out.println("第"+day+"天还剩"+remain+"个桃子");
}
System.out.println(sum);
}
}

热点内容
c语言空格符 发布:2025-03-01 05:33:46 浏览:605
windows怎么快速部署ftp 发布:2025-03-01 05:32:30 浏览:581
u点家庭服务器为什么没网络 发布:2025-03-01 05:32:19 浏览:170
孝感Java 发布:2025-03-01 05:30:48 浏览:767
批量下载php 发布:2025-03-01 05:27:23 浏览:493
安卓845和980哪个值得入手 发布:2025-03-01 05:27:23 浏览:578
脚本识别码一上就掉线 发布:2025-03-01 05:21:05 浏览:693
c语言男兔子 发布:2025-03-01 05:14:22 浏览:49
阿里ip能解析到别的服务器 发布:2025-03-01 05:05:47 浏览:872
雷凌昂克赛拉哪个配置好 发布:2025-03-01 05:05:43 浏览:241