當前位置:首頁 » 操作系統 » 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);
}
}

熱點內容
java限制上傳文件類型 發布:2025-03-01 08:44:23 瀏覽:87
壓縮彈板 發布:2025-03-01 08:38:38 瀏覽:309
創建圖書管理資料庫 發布:2025-03-01 08:27:56 瀏覽:822
小紅傘訪問被拒絕 發布:2025-03-01 08:27:53 瀏覽:635
pro文件中預編譯 發布:2025-03-01 08:22:29 瀏覽:616
游戲伺服器推薦山河雲 發布:2025-03-01 08:17:17 瀏覽:472
linux進程的地址空間 發布:2025-03-01 08:17:08 瀏覽:388
十指樹演算法 發布:2025-03-01 08:16:35 瀏覽:745
c語言指定位 發布:2025-03-01 08:11:44 瀏覽:48
怎麼放wifi伺服器才能穿牆 發布:2025-03-01 08:09:30 瀏覽:410