用java编写一个猪的程序,有一个母猪,从第二年开始生4头猪,第N年有多少头猪

用java编写一个猪的程序,有一个母猪,从第二年开始生4头猪,第N年有多少头猪,第1张

楼主是不是说第2年开始每年都生4头母猪,并铅键漏且新生的猪也从出生后第二年开始每年亮高生4头呢?

是这样的话就是和递增牛群问题一样了。

第n年的总数=第n-1年的总数+第n年的新生数

=第n-1年的总数+4*第n-1年的总数//第n-1年之前出槐烂生的猪都于第n年生了4头

=5*第n-1年的总数

于是可以写出如下递归算法

public static int all(int n)

{

if(n==1)

return 1

else if(n>1)

return 5*all(n-1)

else

return 0

}

import java.awt.BorderLayout

import java.awt.Button

import java.awt.Choice

import java.awt.Color

import java.awt.Container

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import javax.swing.Icon

import javax.swing.ImageIcon

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JOptionPane

import javax.swing.JPanel

//以上均引用不同的package内的类

public class MyMainFrame extends JFrame implements ActionListener {//MyMainFrame类extends “JFrame”类实现 ActionListener的方法

MyCanvas myCanvas//初始化对象MyCanvas类

JPanel panelNorth,panelPreview//定义上方的面板,及预览所需的面板或罩

Button start,preview,set//定义开始,预览,设定按钮

Container container//容器,得坦团耐到内容面板

public MyMainFrame() {//初使化

container=this.getContentPane()//得到当前对象的ContentPane,并且把它赋给container

start=new Button("开始")//创建并初始新的Button(按钮)对象,赋给start

start.addActionListener(this)//在这个按钮对象中添加监听器,范围是当前对象

preview=new Button("预览")//同上,创建新的Button对象。。。。。

preview.addActionListener(this)//同上。。。。。

set = new Button("设置")//同上。。。。。(感觉代码都差不多吧?呵呵)

set.addActionListener(this)//同上

panelPreview=new JPanel()创建新的JPanel(面板)对象

panelPreview.setLayout(null)//设置面板让春对象的布局为空

Icon icon=new ImageIcon("pic/pic_"+MyCanvas.pictureID+".jpg")//创建并初始新的图标对象。图标的图片路径是pic目录下的pic与通过MyCanvas.pictureId取得字符串再与.jpg合并后的名称。例如(pic/pic_1234.jsp)

JLabel label=new JLabel(icon)//定义新的JLable(java标签),并初始

label.setBounds(0,0,300,300)//设置标签的范围(长x轴,宽y轴,长多,宽多少)

panelPreview.add(label)//面板对象中添加label这个对象

panelNorth=new JPanel()//定义新的JPanel

panelNorth.setBackground(Color.red)//设置JPanel的背景色

panelNorth.add(start)//Jpanel加入按钮

panelNorth.add(preview)//同上

panelNorth.add(set)//同上

myCanvas=new MyCanvas()//实例化MyCanvas

container.add(myCanvas,BorderLayout.CENTER)//在容器(前边定义好了这个对象)中添加myCanvas,设置它的布局为居中

container.add(panelNorth,BorderLayout.NORTH)//添加Jpanel,布局为北(也就是上)

this.setTitle("拼图小游戏-")//设置这个对象的题目叫。。。。。

this.setLocation(300,200)//设置它的初始位置

this.setSize(308,365)//设置大小

this.setResizable(false)//设置是否可以改变窗口的大小(否)

this.setVisible(true)//是否可以显示(是)

this.setDefaultCloseOperation(3)//(swt和swing本人用的少)这个好像是按钮的初始样式是哪种吧。自己改下

}

public static void main(String[] args) {//类进口,也就是主程序的进口

// TODO 自动生成方法存根

new MyMainFrame()//实例化主框架

}

public void actionPerformed(ActionEvent arg0) {//对三个按钮事件的处理

// TODO 自动生成方法存根

Button button=(Button)arg0.getSource()//取得通过监听得到的动作时间对象的源(getSource具体得到的是啥,我也不太清楚)

if(button==start){ //判断。如果监听到的是按start按钮

myCanvas.Start()//启动myCanvas

}else if(button==preview){ //如果是preview按钮

if(button.getLabel()=="预览"){ //如果按钮的标签是"预览"

container.remove(myCanvas)//容器销毁myCanvas

container.add(panelPreview)//然后容器添加panelPreview对象

panelPreview.updateUI()//panelPreview对象的upDateUI方法

container.repaint()//调用容器重新画图的命令

button.setLabel("返回")//标签设置成"返回"

}else{ //如果以上两个if都不是,执行下边的语句

container.remove(panelPreview)//cantainer销毁p....这个对象

container.add(myCanvas)//添加m...这个对象

container.repaint()//容器重新画图

button.setLabel("预览")//设置标签名称为"预览"

}

}else if(button==set){//修改所选图片 //如果间听到的是按set这个键的时候

Choice pic = new Choice()//Choice实例化对象(这个是啥类,我也不知道,名字上看是选择?)

pic.add("小猫")//添加小猫

pic.add("小猪")//添加小猪

pic.add("云")//添加云

pic.add("QQ")//添加qq

pic.add("卡通")//添加卡通

pic.add("花")//花

int i=JOptionPane.showConfirmDialog(this, pic, "选择图片", JOptionPane.OK_CANCEL_OPTION)//定义一个int类型的对象i,赋值成后边的那些

if(i==JOptionPane.YES_OPTION){ //如果对象i与JOptionPane对象的YES...相等,则执行下列代码

MyCanvas.pictureID=pic.getSelectedIndex()+1//MyC....这个类的pic...这个属性等于pic.get......这个方法的结果+1

myCanvas.reLoadPictrue()//myCanvas对象重新读取图片

Icon icon=new ImageIcon("pic/pic_"+MyCanvas.pictureID+".jpg")//定义新的图标对象

JLabel label=new JLabel(icon)//初始新的标签(标签中加入图标)

label.setBounds(0,0,300,300)//标签设置范围

panelPreview.removeAll()//调用pane....对象的remo...方法

panelPreview.add(label)//对象pan...调用add方法

panelPreview.repaint()//调用。。。。对象重新画的方法

}

}

}

}

------------------------

不太熟悉java的swt和swing,自己改下吧

这里以python为例,简单介绍一下python可以做哪些有趣的东西,主要内容如下:

1.一键下载腾讯、优酷、哔哩哔哩等主流视频网站的视频,这里主要用到you-get这个包,下面我简单介绍一下这个包的安装和使用:

安装you-get,这里直接在cmd窗口输入命令“pipinstallyou-get”就行,如下:

安装成功后,我们就可以直接利用you-get来下载视频了,只需要传入视频链接地址(you-get视频地址),就能完成视频的下载,这里以下载腾讯视频为例,如下:

下载哔哩悔陪哔哩视频:

视频成功下载后,会保存在当前目录下边,如下:

双击视频,可以正常播放,如下:

2.绘制小猪佩奇,这里主要用到python自带的turtle库,turtle库是python一个非常流行的绘图函数库,基于tkinter,用户可以根据自己需求,绘制出想要的图形,如下,一个可爱的小猪佩奇:

这里可以参考zhaogeno1/article/details/80298669这个教程,介绍的很详细。

3.绘制词云图,这里主要用到wordcloud这个包,绘制出来的图片漂亮、美观、高大上,下面我简单介绍一下这个包的安装和使用:

安装wordcloud,这里直接在cmd窗口输入命令“pipinstallwordcloud”就行:

安装完成后,我们就可以进行简单的测试了,这隐谨里以官方自带的示例a_new_hope.py为例,程序截图如下:

效果截图如下,看着很不错吧:

目前,就介绍这3个有趣的示例吧,当然,还有许多其他有趣的东西,感兴趣的话,可以到网上搜一下,自己尝试一下灶前基,欢迎大家评论留言,分享经验和有趣的实验,希望以上分享的内容能对你有所帮助吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12224505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存