重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java源代码:
创新互联公司于2013年成立,先为广信等服务建站,广信等地企业,进行企业商务咨询服务。为广信企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
public class Test {
public static void main(String[] args) {
Point p1 = new Point(4, 5);
System.out.printf("点p坐标为(%f,%f)\n", p1.getX(), p1.getY());
p1.setX(3);
p1.setY(4);
System.out.printf("重置后点p坐标为(%f,%f)\n", p1.getX(), p1.getY());
System.out.printf("点(%f, %f)到原点的距离的平方为%f\n", p1.getX(), p1.getY(),
p1.distance());
Point p2 = new Point(1, 2);
System.out.printf("点(%f,%f)到点(%f,%f)的距离的平方为%f\n", p1.getX(),
p1.getY(), p2.getX(), p2.getY(), p1.distance(p2));
}
}
class Point {
protected double x;
protected double y;
public Point(){
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public void setX(double x) {
this.x = x;
}
public double getX() {
return this.x;
}
public void setY(double y) {
this.y = y;
}
public double getY() {
return this.y;
}
public double distance() {
return Math.pow(x, 2) + Math.pow(y, 2);
}
public double distance(Point p) {
return Math.pow(this.x - p.x, 2) + Math.pow(this.y - p.y, 2);
}
}
运行测试:
设n为石墩数,m为荷叶数 ,设F[n,m]表示当有n个石墩,m个荷叶时,能跳过去的最多青蛙数,我们现在可以增加一个石墩,此时就有n+1个石墩了,把第n+1个石墩看成右岸,这样就可以把F[n,m]个青蛙从左岸跳到第n+1个石墩上(借助原来河里的n个石墩,m个荷叶), 这时第n+1个石墩上就有F[n,m]个青蛙了,此时河里还有n个空石墩,m个空荷叶,还可以帮助F[n,m]个青蛙从左岸跳到真正的右岸,此时再把第n+1个石墩看成左岸, 借助河里的n个石墩,m个荷叶,顺利的跳到右岸青蛙的身上.至此一共可以跳过去 2*F[n,m]个青蛙.
由此可知: 关系式 F[n+1,m]=2*F[n,m]
推导: F[n,m]=2*F[n-1,m]
=4*F[n-2,m]
……
=(2^i)*F[n-i,m]
……
=(2^n)*F[0,m]
当n=0时,河里只有m个荷叶,每个叶上只能有一个青蛙,再加上从右岸可以直接跳到左岸的一只,所以共有m+1个青蛙,即F[0,m]=m+1;所以
F[n,m]=(m+1)*2^n
背景图片需要放在JFrame的JLayeredPane层中,而且需要把覆盖在其上面的JPanel设成透明,才能作为背景被显示出来.我给你个例子,你看看吧.
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
public class BackGroundPicture extends JFrame{
JButton jb=new JButton("打印");
ImageIcon image=new ImageIcon("Penguins.jpg");//这里背景图片文件换成你的背景图片文件
JLabel jl=new JLabel(image);//添加背景图片
JPanel jp = new JPanel();
public BackGroundPicture(){
super("图片打印窗口");
jp.add(jb);
jp.setOpaque(false);
JLayeredPane jlp=this.getLayeredPane();
jlp.setLayout(new BorderLayout());
jlp.add(jl);
this.add(jp);
this.setSize(800, 600);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setResizable(true);
this.setVisible(true);
}
public static void main(String[] args) {
new BackGroundPicture();
}
}