當前位置:首頁 » 編程語言 » 演算法設計java

演算法設計java

發布時間: 2023-04-27 14:20:02

java怎麼用遞歸演算法設計演算法實現功能:求1+2!+3!+...+20!的和. 帶下注釋 才接觸不太懂

import java.io.*;

public class Sum {
public static int sum(int n) {
if (n < 1)
return 0;
else
return sum(n - 1) + n;
}

public static void main(String args[]) {
int result = 0;
String str;
int num = 0;
System.out.println("Please input the number:"兆鉛高);
try {
DataInputStream in = new DataInputStream(System.in);
str = in.readLine(); // 輸入的數字字元串
num = Integer.parseInt(str); // 字激野符串轉換成整數值
} catch (Exception e) {
}
result = sum(num);// 調用sum(),求1+2+3+····+num,這個result好像要小寫
System.out.println(result); // 按行輸出結果
}
}
調整過了,結果是對族尺的,程序也可以運行了
你這個題中好多錯誤啊,大小寫、中文的,運行起來還得改,從哪裡復制的啊!

② Java演算法設計 請問這個乘法表的演算法設計怎麼畫

演算法設計怎麼畫??什麼意思??乘法表嘛
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
...
1*9=9 2*9=18 3*9=27 ...
m(i+1)遞歸自己調用自己嘛

if(){
因為閉銷姿這里沒有遞歸所以當i==9時候進入
列印就轎絕結束了
}else{
否則一直自己調用自己
遞歸

遞歸少用點,一般遞歸可以的循環都能解決比遞歸好也好理解!!
遞歸斗歲還容易照成棧溢出。

③ Java演算法設計:迭代器實現排序(求各位大佬各抒己見)

public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int e = arr.length - 1; e > 0; e--) {
for (int i = 0; i < e; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
}
}
}

④ 用JAVA設計一個簡單的加密、解密演算法,用該演算法來實現對數據的加密、解密

簡單的?

用異或就可以了..!

importjava.util.Scanner;

publicclass加密
{
privatestaticScannersc=newScanner(System.in);
publicstaticvoidmain(String[]Args)
{
System.out.println(" ================字元串加密演示===================== ");
init();
}
//初始化!
privatestaticvoidinit()
{
for(;;)
{
char[]arr=input();
jiaMi(arr,20140908);
jiaMi(20140908,arr);
}

}
//鍵盤錄取!
privatestaticchar[]input()
{
Strings=sc.nextLine();
inta=s.length();
char[]arr=newchar[a];
//char[]arr=s.toCharArray();
for(inti=0;i<s.length();i++)
{
arr[i]=s.charAt(i);
}
returnarr;
}
//加密!!
privatestaticvoidjiaMi(char[]arr,inta)
{
for(inti=0;i<arr.length;i++)
{
arr[i]=((char)(arr[i]^a));
}
System.out.println("加密完成!");
print(arr);
}
//解密!!
privatestaticvoidjiaMi(inta,char[]arr)
{
for(inti=0;i<arr.length;i++)
{
arr[i]=((char)(arr[i]^a));
}
System.out.println("解密完成");
print(arr);
}
//列印!!
privatestaticvoidprint(char[]arr)
{
for(inti=0;i<arr.length;i++)
{
System.out.print(arr[i]);
}
System.out.println(" ========================= ");
}
}

⑤ java 演算法設計 多數組遞歸操作

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayAssemble {

@SuppressWarnings("unchecked")
public static void main(String[] args) {
Integer[] arrOfInt = { 1, 2, 3 };
@SuppressWarnings("unused")
Character[] arrOfChar1 = { 'a', 'b', 'c' };
@SuppressWarnings("unused")
Character[] arrOfChar2 = { '!', '@', '#' };
String[] arrOfStr = { "lmy", "lyb", "mz", "yx" };

System.out.println("以下是組合後的數組盯猛");

// List arrayList = assembleArraysToList(arrOfInt);
// for (int n = 0; n < arrayList.size(); n++) {
// Object obj = arrayList.get(n);
// if (obj instanceof Object[]) {
// Object[] objArr = (Object[]) obj;
// System.out.println(Arrays.toString(objArr));
// } else {
// System.out.println(obj);
// }
//
// }
Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] {
arrOfInt, arrOfChar1, arrOfChar2, arrOfStr });
for (Object[] objArrays : objectsArrays) {
System.out.println(Arrays.toString(objArrays));
}

}

// 方法一:使用可變參數方法返回數組類型的List
@SuppressWarnings("unchecked")
public static List assembleArraysToList(Object[]... objects) {
List arrayList = new ArrayList();
// 遍歷方法的凱廳橋參數
for (int i = 0; i < objects.length; i++) {

if (i == 0) {
// 對於第一個數組參數,先將其轉變成List類型,以便能使用輔助方法進行處理
arrayList = Arrays.asList(objects[i]);
} else {
// 對從第二個參數開始的數組與前面組合過的列表進行組合
arrayList = assembleArrayToList(arrayList, objects[i]);
}
}
return arrayList;
}

// 方法一的輔伏冊助方法:將一個數組類型或對象類型的List與數組組合,並返回List
@SuppressWarnings("unchecked")
public static List assembleArrayToList(List aList, Object[] array) {
List arrList = new ArrayList();
// 遍歷aList,將array與aList進行組合
for (int i = 0; i < aList.size(); i++) {
Object obj = aList.get(i);
// 檢查aList的元素是否是數組類型的,如果不是,則直接產生組合列表
if (obj instanceof Object[]) {
Object[] listArr = (Object[]) obj;
// 對數組類型的aList元素與array進行組合
for (int k = 0; k < array.length; k++) {
Object[] newListArr = new Object[listArr.length + 1];
for (int j = 0; j < listArr.length; j++) {
newListArr[j] = listArr[j];
}
newListArr[listArr.length] = array[k];
arrList.add(newListArr);
}
} else {
// 對非數組類型的aList元素與array進行組合
for (int j = 0; j < array.length; j++) {
Object[] arrObj = { aList.get(i), array[j] };
arrList.add(arrObj);
}
}
}
return arrList;
}

// 方法二:使用二維數組參數方法返回組合的二維數組類型,並使用了遞歸
@SuppressWarnings("unchecked")
public static Object[][] assembleArraysToPlanerArray(Object[][] objectArrays) {
if (objectArrays.length == 2) {
Object[] assembledArray = objectArrays[0];
Object[] array = objectArrays[1];
return assembleArrayToArray(assembledArray, array);
} else if (objectArrays.length <= 1) {
return objectArrays;
} else {
Object[] objArray = objectArrays[objectArrays.length - 1];
objectArrays = Arrays.Of(objectArrays, objectArrays.length - 1);
return assembleArrayToArray(
assembleArraysToPlanerArray(objectArrays), objArray);
}
}

// 方法二的輔助方法:將一個數組類型或二維數組類型與數組組合,並返回二維數組
public static Object[][] assembleArrayToArray(Object[] assembledArray,
Object[] array) {
int lenAssArray = assembledArray.length;
int lenArray = array.length;
Object[][] objArrays = new Object[lenAssArray * lenArray][];
for (int i = 0; i < lenAssArray; i++) {
Object obj = assembledArray[i];
if (obj instanceof Object[]) {
Object[] objArr = (Object[]) obj;
int lenObjArr = objArr.length;
for (int k = 0; k < lenArray; k++) {
// 復制objArr數組到newListArr數組,並將其長度加一
Object[] newListArr = Arrays.Of(objArr, lenObjArr + 1);
//將array數組的第k+1元素賦值給newListArr數組最後的元素,並將newListArr賦值給objArrays數組的第k+1個元素
newListArr[lenObjArr] = array[k];
objArrays[lenArray * i + k] = newListArr;
}
} else {
for (int j = 0; j < lenArray; j++) {
Object[] newObjArray = { obj, array[j] };
objArrays[lenArray * i + j] = newObjArray;
}
}
}
return objArrays;
}

}
//我自己寫的方法,用了一天的時間,希望能夠採納,對了,運行環境是JDK1.6

⑥ 什麼是演算法與程序設計 java

演算法就是吧一個實際問題抽象成數學模型,就是解決一個問題的所有步槐扒晌驟(計算機解決問題的方法和人不一樣,所以人要設計能用計算機的方式解決問題的方法)鉛鋒。而往此態往精妙的演算法需要用到數據結構,所以演算法和數據結構密不可分。

⑦ java 設計演算法,計算用後綴表示法表示的算術表達式的值。

你好!
後綴表達式也稱逆波蘭表達式,其優點就在於可以方便的用棧實現表達式的值的計算。和你說一下思路吧:
·從頭讀入表達式
·如果遇到數則將其壓入棧
·如果遇到運算符,從棧中彈出棧頂連個數,實行相應運算,將結果壓入棧中
·直到表達式尾,此時棧中應該只有一個元素,即運算結果
·Over
如果對你有幫助,望採納。

⑧ 演算法設計與程序實現:java,100元的具體劃分方案,可選面值有1元,10元,20元,50元,100元.

for( int a=0,loopCountA=100/100; a<=loopCountA; a++ )
for( int b=0,loopCountB=(100-a*100)/50; b<=loopCountB; b++ )
for( int c=0,loopCountC=(100-a*100-b*50)/20; c<=loopCountC; c++ )
for( int d=0,loopCountD=(100-a*100-b*50-c*20)/10; d<=loopCountD; d++ )
for( int e=0,loopCountE=(100-a*100-b*50-c*20-d*10)/1; e<=loopCountE; e+=10 )
if( (a*100+b*50+c*20+d*10+e)==100 )
System.out.println("1元:"+e+"張;10元:"+d+"張;20元:"+c+"張;50元:"+b+"張;100元:"+a+"張。");

改進了下,速度快了一些。

⑨ 有沒有專用於JAVA的演算法設計與分析書籍

一、入門
《Java 2從入門到精通》- 推薦
《Thinking in Java》- 強烈推薦*
O』reilly的Java編程基礎系列 - 參考*

二、進階
《Java Cook Book》- 非常推薦* (包含了Java編程的Tips,適合當做手冊來查閱)
《O』reilly-Java IO》- 推薦* (包含Java IO編程的各個方面)
《O』reilly-Database Programming with JDBC》- 推薦* (JDBC編程)
《O』reilly-Java Programming with Oracle JDBC》- 參考*

三、Java Web編程
《O』reilly-Java Server Pages》- 強烈推薦*
《O』reilly-Java Servlet Programming》- 非常推薦*
《O』唯襪reilly-Jakarta Struts》- 推薦* (Java Web編程的一個MVC實現框架Struts的書)

四、EJB編程
《J2EE應用與BEA Weblogic Server》- 強烈推薦
《Mastering EJB 2.0》- 非常推薦*
《Enterprise Java Bean》- 推薦*

五、Java XML編程
《O』reilly-Java and XML》- 推薦*
《O』reilly-Java and SOAP》- 參考* (Java的SOAP編程)

六、設計模式
《Core J2EE Patterns》- 強指頌激烈推薦* (J2EE設計模式,設計企業應用軟體必備參考書)
《EJB Design Patterns》- 推薦*

七、其它
《O』reilly Ant - The Definitive Guide》- 推薦* (Ant是一種功能非常強大的Java工具)

Note:
強烈推薦書籍:建議櫻漏購買,重點學習
非常推薦書籍:建議花時間學習
推薦書籍:在學有餘力的情況下,建議學習
參考書籍:有興趣的情況下學習

標明*號的書籍有電子版本

⑩ java演算法設計問題(貪心演算法)

第一、你說的那個東西不叫框架
第二、你用的演算法不是多稿游芹路合並
第三、題目不是讓你合並、是讓你找出最優解
解答,我暈這題目有啥解答的啊,你不是自己編的吧,假如合並兩個有序序列只要m+n-1次比較,那麼不單單這兩個序列各自有序,同時其中一個序列任意元素大於另外一個序列所有元素
那麼答案就是按照k的序號從前想磨伏後依次合並鍵畢啊

熱點內容
linux查看selinux狀態 發布:2025-07-20 13:36:35 瀏覽:914
福利資源解壓密碼 發布:2025-07-20 13:34:10 瀏覽:269
我的世界怎麼在手機搞伺服器 發布:2025-07-20 13:26:07 瀏覽:905
android系統鍵盤 發布:2025-07-20 13:19:38 瀏覽:500
程序化交易演算法 發布:2025-07-20 13:09:58 瀏覽:973
已關閉伺服器是什麼意思 發布:2025-07-20 13:06:49 瀏覽:709
三星s5密碼多少錢 發布:2025-07-20 12:55:14 瀏覽:961
密碼忘記了怎麼找回 發布:2025-07-20 12:46:18 瀏覽:534
華為的密碼鎖為什麼開不了 發布:2025-07-20 12:45:35 瀏覽:133
app登錄密碼在哪裡 發布:2025-07-20 12:22:31 瀏覽:693