java前臺代碼算法 java開發(fā)前臺

怎么用java代碼實現(xiàn)開平方算法?

這是我應(yīng)聘時寫的算法代碼,運行成功:

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供洛江網(wǎng)站建設(shè)、洛江做網(wǎng)站、洛江網(wǎng)站設(shè)計、洛江網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、洛江企業(yè)網(wǎng)站模板建站服務(wù),十年洛江做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

//這是用java編寫的一個求2的平方根的程序,精確度可通過修改weishu參數(shù)來改變

public class app

{ //用二分法求2的平方根

public static void main(String args[])

{

int a[],b[],s[],d[],c[],ss[];

int i,j,k;

a=new int[1000];

b=new int[1000];

s=new int[1000];

d=new int[1000];

c=new int[1000];

ss=new int[1000];

boolean jingque;

jingque=true;

a[0]=b[0]=2;

a[2]=b[2]=1;

a[1]=4;

b[1]=5;

int weishu=200;//定義循環(huán)次數(shù)

for(i=0;i1000;i++)

s[i]=0;

for(k=0;kweishu;k++)

{

hanshucheng.cheng(b,b,s);

j=s[0];

while (s[j]=2)

{

hanshuadd.add(a,b,c);

hanshuchu.chu(d,c);

hanshucopy.copy(ss,b);

hanshucopy.copy(b,d);

hanshucheng.cheng(b,b,s);

j=s[0];

// for(i=0;i=s[0];i++)

//System.out.println("s["+i+"]="+s[i]);

}

hanshucopy.copy(a,b);

hanshucopy.copy(b,ss);

}

for(i=a[0];i=1;i--)

System.out.print(a[i]);

System.out.print("左邊計算到"+a[0]+"位\n");

for(i=b[0];i=1;i--)

System.out.print(b[i]);

System.out.print("右邊計算到"+b[0]+"位\n");

for(i=a[0],j=b[0];jingque==true;i--,j--)

if(a[i]==b[j])

System.out.print(a[i]);

else

jingque=false;

System.out.print("精確到"+(a[0]-i-1)+"位\n");

}

}

class hanshucheng

{

public static void cheng( int a[],int b[],int s[])//定義兩數(shù)相乘的函數(shù)

{

int flag=0,flag1=0;

int number=b[0];

int c[]=new int[1000];

int i,j,k,u;

for(int i1=0;i11000;i1++)

s[i1]=0;

for(i=1;i=number;i++)

{

for(int i1=0;i11000;i1++)

c[i1]=0;

for(j=i,k=1;jnumber+i;j++,k++)

{

c[j]=(a[k]*b[i]+flag)%10;

flag=(a[k]*b[i]+flag)/10;

}

if (flag!=0)

{

c[j]=flag;

flag=0;

j=j+1;

}

c[0]=j-1;

//for(k=1;k=c[0];k++)

//System.out.println("c="+c[k]);

for(k=1;k=c[0];k++)

{ u=s[k];

s[k]=(u+c[k]+flag1)%10;

flag1=(u+c[k]+flag1)/10;

}

if(flag1!=0)

{

s[k]=flag1;

k=k+1;

flag1=0;

}

s[0]=k-1;

// for(k=0;k=s[0];k++)

//System.out.println(s[k]);

}

}

}

class hanshuadd

{

public static void add(int a[],int b[],int c[])//定義兩數(shù)相加的函數(shù)

{

int flag=0;int i,j,k;

int a1[]=new int[1000];

for(i=1;i=b[0];i++)

a1[i]=0;

for(j=b[0]-a[0]+1,k=1;j=b[0];j++,k++)

a1[j]=a[k];

//for(k=0;k=j;k++)

//System.out.println("a1="+a1[k]);

for(i=1;i=b[0];i++)

{

c[i]=(a1[i]+b[i]+flag)%10;

flag=(a1[i]+b[i]+flag)/10;

}

if(flag!=0)

{

c[i]=flag;

i=i+1;

flag=0;

}

c[0]=i-1;

}

}

class hanshuchu

{

public static void chu(int d[],int a[])//定義任一數(shù)除以2的函數(shù)

{

int flag=0,i;

for(i=a[0];i=1;i--)

{

d[i+1]=(flag*10+a[i])/2;

flag=(flag*10+a[i])%2;

}

if(flag!=0)

d[1]=5;

if(d[1]==0)

for(i=1;i=a[0]+1;i++)

d[i]=d[i+1];

d[i]=0;

d[0]=a[0]+1;

}

}

class hanshucopy

{

public static void copy(int a[],int b[])//定義

{

int i;

for(i=0;i=b[0];i++)

a[i]=b[i];

while (i1000)

a[i++]=0;

}

}

JAVA 求助一段算法代碼!求大神~~~~~

看完你的,自己寫了一個。很簡陋。你的改動比較大。一時半會改不了。

你的寫好了。改動有點大。鼠標(biāo)事件mousePressed()中實現(xiàn)移動。由于時間沒做優(yōu)化,主要處理方法是判斷當(dāng)前l(fā)istenerPanel的上下左右是否存在上面是0的listenerPanel,存在則交換上面數(shù)字及背景顏色。自己可以優(yōu)化下里面代碼,

思路:

PuzzleTile jb = (PuzzleTile) e.getSource();

for(int i=0;ilistenerPanel.length;i++){

if(jb.equals(listenerPanel[i])){

//判斷當(dāng)前l(fā)istenerPanel[i]上下左右是否存有l(wèi)istenerPanel的上面數(shù)字是0的,如果存在

則把當(dāng)前的listenerPanel[i]的背景顏色及數(shù)字與上面是0 的交換。判斷周圍是否存在有點及是否交換有點復(fù)雜。

}

}

代碼修改如下:少量注釋

import java.awt.Color;

import java.awt.Font;

import java.awt.FontMetrics;

import java.awt.Graphics;

import javax.swing.*;

public class PuzzleTile extends JPanel{

private String tileNumber;

public PuzzleTile(int number) {

super();

if (number == 0) {

this.setBackground(Color.white);

}

else {

this.setBackground(Color.darkGray);

}

this.tileNumber = "" + number;

}

public void setTitleNumber(int tileNumber){//設(shè)置上面的數(shù)字

this.tileNumber=tileNumber+"";

}

public int getTitleNumber(){//獲得上面的數(shù)字

return Integer.parseInt(tileNumber);

}

public void paintComponent(Graphics graphics) {

Font a=new Font("Arial",Font.BOLD,30);

graphics.setFont(a);

graphics.setColor(Color.white);

super.paintComponent(graphics);

FontMetrics b=graphics.getFontMetrics(a);

int c=b.stringWidth(tileNumber);

int d=b.getAscent();

int e=getWidth()/2-c/2;

int f=getHeight()/2+d/2;

graphics.drawString(tileNumber,e,f);

}

}

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.ArrayList;

import java.util.Random;

public class SlidingPuzzle extends JFrame implements MouseListener

{

public static void main(String[] args){

SlidingPuzzle frame=new SlidingPuzzle();

frame.TestPanel();

frame.setTitle("Numeric Sliding Puzzle");

frame.setSize(400,400);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

PuzzleTile[] listenerPanel;

public void TestPanel(){

Container container=getContentPane();

container.setLayout(new GridLayout(3,3,5,5));

listenerPanel=new PuzzleTile[9];

ArrayListInteger myList=new ArrayListInteger();

int m;

for(int i=0;i9;i++){

m=new Random().nextInt(9);

if(!myList.contains(m))

myList.add(m);

else

i--;

}

for(int i=0;ilistenerPanel.length;i++){

listenerPanel[i]=new PuzzleTile(myList.get(i));

container.add(listenerPanel[i]);

listenerPanel[i].addMouseListener(this);

}

}

public void mousePressed(MouseEvent e){

PuzzleTile jb = (PuzzleTile) e.getSource();

int m=jb.getTitleNumber();

//依次判斷每一個listenerPanel上下左右是否存在上面數(shù)字為0的listenerPanel

if(jb.equals(listenerPanel[0])){

if(listenerPanel[1].getTitleNumber()==0){

listenerPanel[0].setBackground(Color.white);

listenerPanel[0].setTitleNumber(0);

listenerPanel[1].setTitleNumber(m);

listenerPanel[1].setBackground(Color.darkGray);

}

if(listenerPanel[3].getTitleNumber()==0){

listenerPanel[0].setBackground(Color.white);

listenerPanel[0].setTitleNumber(0);

listenerPanel[3].setTitleNumber(m);

listenerPanel[3].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[1])){

if(listenerPanel[0].getTitleNumber()==0){

listenerPanel[1].setBackground(Color.white);

listenerPanel[1].setTitleNumber(0);

listenerPanel[0].setTitleNumber(m);

listenerPanel[0].setBackground(Color.darkGray);

}

if(listenerPanel[2].getTitleNumber()==0){

listenerPanel[1].setBackground(Color.white);

listenerPanel[1].setTitleNumber(0);

listenerPanel[2].setTitleNumber(m);

listenerPanel[2].setBackground(Color.darkGray);

}

if(listenerPanel[4].getTitleNumber()==0){

listenerPanel[1].setBackground(Color.white);

listenerPanel[1].setTitleNumber(0);

listenerPanel[4].setTitleNumber(m);

listenerPanel[4].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[2])){

if(listenerPanel[1].getTitleNumber()==0){

listenerPanel[2].setBackground(Color.white);

listenerPanel[2].setTitleNumber(0);

listenerPanel[1].setTitleNumber(m);

listenerPanel[1].setBackground(Color.darkGray);

}

if(listenerPanel[5].getTitleNumber()==0){

listenerPanel[2].setBackground(Color.white);

listenerPanel[2].setTitleNumber(0);

listenerPanel[5].setTitleNumber(m);

listenerPanel[5].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[3])){

if(listenerPanel[0].getTitleNumber()==0){

listenerPanel[3].setBackground(Color.white);

listenerPanel[3].setTitleNumber(0);

listenerPanel[0].setTitleNumber(m);

listenerPanel[0].setBackground(Color.darkGray);

}

if(listenerPanel[4].getTitleNumber()==0){

listenerPanel[3].setBackground(Color.white);

listenerPanel[3].setTitleNumber(0);

listenerPanel[4].setTitleNumber(m);

listenerPanel[4].setBackground(Color.darkGray);

}

if(listenerPanel[6].getTitleNumber()==0){

listenerPanel[3].setBackground(Color.white);

listenerPanel[3].setTitleNumber(0);

listenerPanel[6].setTitleNumber(m);

listenerPanel[6].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[4])){

if(listenerPanel[1].getTitleNumber()==0){

listenerPanel[4].setBackground(Color.white);

listenerPanel[4].setTitleNumber(0);

listenerPanel[1].setTitleNumber(m);

listenerPanel[1].setBackground(Color.darkGray);

}

if(listenerPanel[7].getTitleNumber()==0){

listenerPanel[4].setBackground(Color.white);

listenerPanel[4].setTitleNumber(0);

listenerPanel[7].setTitleNumber(m);

listenerPanel[7].setBackground(Color.darkGray);

}

if(listenerPanel[3].getTitleNumber()==0){

listenerPanel[4].setBackground(Color.white);

listenerPanel[4].setTitleNumber(0);

listenerPanel[3].setTitleNumber(m);

listenerPanel[3].setBackground(Color.darkGray);

}

if(listenerPanel[5].getTitleNumber()==0){

listenerPanel[4].setBackground(Color.white);

listenerPanel[4].setTitleNumber(0);

listenerPanel[5].setTitleNumber(m);

listenerPanel[5].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[5])){

if(listenerPanel[4].getTitleNumber()==0){

listenerPanel[5].setBackground(Color.white);

listenerPanel[5].setTitleNumber(0);

listenerPanel[4].setTitleNumber(m);

listenerPanel[4].setBackground(Color.darkGray);

}

if(listenerPanel[2].getTitleNumber()==0){

listenerPanel[5].setBackground(Color.white);

listenerPanel[5].setTitleNumber(0);

listenerPanel[2].setTitleNumber(m);

listenerPanel[2].setBackground(Color.darkGray);

}

if(listenerPanel[8].getTitleNumber()==0){

listenerPanel[5].setBackground(Color.white);

listenerPanel[5].setTitleNumber(0);

listenerPanel[8].setTitleNumber(m);

listenerPanel[8].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[6])){

if(listenerPanel[3].getTitleNumber()==0){

listenerPanel[6].setBackground(Color.white);

listenerPanel[6].setTitleNumber(0);

listenerPanel[3].setTitleNumber(m);

listenerPanel[3].setBackground(Color.darkGray);

}

if(listenerPanel[7].getTitleNumber()==0){

listenerPanel[6].setBackground(Color.white);

listenerPanel[6].setTitleNumber(0);

listenerPanel[7].setTitleNumber(m);

listenerPanel[7].setBackground(Color.darkGray);

}

}else if(jb.equals(listenerPanel[7])){

if(listenerPanel[6].getTitleNumber()==0){

listenerPanel[7].setBackground(Color.white);

listenerPanel[7].setTitleNumber(0);

listenerPanel[6].setTitleNumber(m);

listenerPanel[6].setBackground(Color.darkGray);

}

if(listenerPanel[8].getTitleNumber()==0){

listenerPanel[7].setBackground(Color.white);

listenerPanel[7].setTitleNumber(0);

listenerPanel[8].setTitleNumber(m);

listenerPanel[8].setBackground(Color.darkGray);

}

if(listenerPanel[4].getTitleNumber()==0){

listenerPanel[7].setBackground(Color.white);

listenerPanel[7].setTitleNumber(0);

listenerPanel[4].setTitleNumber(m);

listenerPanel[4].setBackground(Color.darkGray);

}

}else {

if(listenerPanel[5].getTitleNumber()==0){

listenerPanel[8].setBackground(Color.white);

listenerPanel[8].setTitleNumber(0);

listenerPanel[5].setTitleNumber(m);

listenerPanel[5].setBackground(Color.darkGray);

}

if(listenerPanel[7].getTitleNumber()==0){

listenerPanel[8].setBackground(Color.white);

listenerPanel[8].setTitleNumber(0);

listenerPanel[7].setTitleNumber(m);

listenerPanel[7].setBackground(Color.darkGray);

}

}

boolean b=true;//是否完成標(biāo)記

for(int i=0;ilistenerPanel.length;i++){//判斷l(xiāng)istenerPanel[0]~listenerPanel[8]上的數(shù)字是從0~8.若是完成拼圖

if(listenerPanel[i].getTitleNumber()!=i)

b=false;

}

if(b==true){

int i=JOptionPane.showConfirmDialog(null, "would you paly agin?");

if(i==0){

if(i==0){

Rectangle re=this.getBounds();

this.dispose();

SlidingPuzzle slidingPuzzle=new SlidingPuzzle();

slidingPuzzle.setBounds(re);

}

else if(i==1)

System.exit(0);

else ;

}

}

}

public void mouseReleased(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

}

如果運行過程什么問題追問或者h(yuǎn)i

JAVA 實現(xiàn)算法

package huda.laogao.ON_20121216;

import java.util.*;

public class GetEquation {

ArrayListInteger params = null;// 進(jìn)行加減的數(shù),長度設(shè)為n

int result = 0;// 結(jié)果

public GetEquation(ArrayListInteger params, int result) {

this.params = params;

this.result = result;

}

public void run() {

int size = params.size();

if (size == 1) {

if (params.get(0) == result)

System.out.println(result + "=" + result);

else

System.out.println("Invalid");

return;

}

int[][] matrix = getMatrix(size - 1);

int m = matrix.length;// 行數(shù)

int count = 0;// 記錄符合結(jié)果的組合數(shù)

for (int i = 0; i m; i++) {

int now = params.get(0);// 進(jìn)行加減的結(jié)果,初始為第一個值

// 從第二個數(shù)開始進(jìn)行加或減,加的話就相當(dāng)于該數(shù)乘上1,然后加到結(jié)果上,

// 減的就相當(dāng)于該數(shù)乘上-1,然后加到結(jié)果上

for (int j = 1; j size; j++) {

now += matrix[i][j - 1] * params.get(j);

}

// System.out.println(now);

// 判斷結(jié)果

if (now == result) {

count++;// 組合數(shù)加1

System.out.print(params.get(0));

for (int j = 1; j size; j++) {

if (matrix[i][j - 1] == 1)

System.out.print("+" + params.get(j));

else

System.out.print("-" + params.get(j));

}// for j

System.out.println("=" + result);

}// if

}// for i

if (count == 0)

System.out.println("Invalid");

}

public int[][] getMatrix(int n) {

int m = (int) Math.pow(2, n);

int matrix[][] = new int[m][n];

for (int i = 0; i n; i++) {

int num = (int) Math.pow(2, i + 1);

// 總共分 2^(i+1)塊,如i=0,即該矩陣的第一列,可分為2塊,上一塊取1,下一塊取-1

int size = (int) Math.pow(2, n - i - 1);

// 每塊的大小為2^(n-i-1),如n=3,i=0,每塊的大小為4,即前4個為1,后4個為-1

int flag = 1;// 先為+

for (int j = 0; j num; j++) {

for (int k = 0; k size; k++) {

matrix[k + j * size][i] = flag;

}

flag *= -1;

}

}

return matrix;

}

public void print(int[][] matrix) {

for (int i = 0; i matrix.length; i++) {

for (int j = 0; j matrix[i].length; j++) {

System.out.print(matrix[i][j] + "\t");

}

System.out.println();

}

}

public static void main(String args[]) {

ArrayListInteger params = new ArrayListInteger();

params.add(1);

params.add(2);

params.add(3);

params.add(4);

int result = 10;

GetEquation ge = new GetEquation(params, result);

ge.run();

}

}

運行結(jié)果為:1+2+3+4=10

注:難點為獲取加減矩陣,可輔助print()函數(shù)幫助理解

望采納

分享題目:java前臺代碼算法 java開發(fā)前臺
當(dāng)前路徑:http://muchs.cn/article20/dosjejo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、建站公司、微信公眾號、企業(yè)建站網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司