JAVA经典实用程序代码

更新时间:2024-04-29 07:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1百分制分数到等级分数 package pm;

public class SwitchTest { //编写程序,实现从百分制分数到等级分数的转换 // //>=90 A // 80~89 B // 70~79 C // 60~69 D // <60 E public static void main(String[] args) { int s=87; switch(s/10){

case 10 :System.out.println(\ case 9 :System.out.println(\ case 8 :System.out.println(\ case 7 :System.out.println(\ case 6 :System.out.println(\ default :System.out.println(\ } } }

2成法口诀阵形 package pm;

public class SwitchTest{ public static void main(String[] args){ for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+\ } System.out.println(); }

} }

3华氏和摄氏的转换法

package pm;

import java.util.Scanner; public class SwitchTest { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (true) { System.out.println(\请输入要转换的温度类型:C 或 F\ String s = sc.next().trim(); if (\ //做摄氏向华摄的转换 System.out.println(\请输入要转换摄氏的温度:..\ double db = sc.nextDouble(); double db2 = (db * 9 / 5) + 32; System.out.println(\对应的华氏温度:\ } else if (\ //做华摄向摄氏的转换 System.out.println(\请输入要转换华氏的温度:..\ double db = sc.nextDouble(); double db2 = (db - 32) * 5 / 9; System.out.println(\对应的摄氏温度:\ }else if(\ break; } } } }

package pm;

import java.util.Scanner;

public class SwitchTest{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); boolean flag=true; while (flag) { System.out.println(\请输入要转换的温度,如:50c或100f\ String str = sc.nextLine().trim(); if (str.endsWith(\ //做摄氏向华摄的转换 30c String st = str.substring(0, str.length() - 1); double db = Double.parseDouble(st);//[0,2) //2 double db=Double.valueOf(st).doubleValue(); double db2 = (db * 9 / 5) + 32; System.out.println(\对应的华氏温度:\ } else if (str.endsWith(\ //做华摄向摄氏的转换 String st = str.substring(0, str.length() - 1); double db = Double.parseDouble(st);//[0,2) //2 double db=Double.valueOf(st).doubleValue(); double db2 = (db - 32) * 5 / 9; System.out.println(\对应的摄氏温度:\ }else if(\ flag=false; } } } }

4三个数的最大数 package pm;

public class SwitchTest { public static void main(String[] args) { int a=1,b=2,c=3,d=0; d=a>b?a:b;

d=a>b?(a>c?a:c):(b>c?b:c); System.out.println(\最多数为:\ } }

5简单计算器的小程序

package one;

import java.awt.BorderLayout; import java.awt.GridLayout;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField;

public class Jsq implements ActionListener { private JFrame frame; private JButton[] bus; private JTextField jtx; private JButton bu; private char[] strs; private String d_one = \ private String operator; public static void main(String[] args) { new Jsq(); }

/* 利用构造进行实例化 */ public Jsq() { frame = new JFrame(\计算器\ jtx = new JTextField(14); bus = new JButton[16]; strs = \ for (int i = 0; i < 16; i++) { bus[i] = new JButton(strs[i] + \ bus[i].addActionListener(this); } bu = new JButton(\ bu.addActionListener(this); init(); }

/* GUI 初始化 */ public void init() { JPanel jp1 = new JPanel(); jp1.add(jtx); jp1.add(bu); frame.add(jp1, BorderLayout.NORTH); }

/* 事件的处理 */

public void actionPerformed(ActionEvent arg0) { /*获取输入字符*/ String conn = arg0.getActionCommand(); /*清除计算器内容*/ if (\

JPanel jp2 = new JPanel();

jp2.setLayout(new GridLayout(4, 4)); for (int i = 0; i < 16; i++) { jp2.add(bus[i]); }

frame.add(jp2, BorderLayout.CENTER);

frame.pack();

frame.setLocation(300, 400); frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

d_one = \ operator = \ jtx.setText(\ return; }

/*暂未实现该功能*/ if(\ return; }

/*记录运算符,保存运算数字*/ if ((\ if(\ d_one = jtx.getText(); operator = conn; jtx.setText(\ return; }

/*计算结果*/

if (\ if(\ double db = 0; if (\ db = Double.parseDouble(d_one) + Double.parseDouble(jtx.getText()); jtx.setText(db + \ } if (\ db = Double.parseDouble(d_one) - Double.parseDouble(jtx.getText()); jtx.setText(db + \ } if (\ db = Double.parseDouble(d_one) * Double.parseDouble(jtx.getText()); jtx.setText(db + \ } if (\ db = Double.parseDouble(d_one) / Double.parseDouble(jtx.getText()); jtx.setText(db + \ } d_one = db + \ return; }

//界面显示 jtx.setText(jtx.getText() + conn); } }

6三角形图案

package pm;

public class SwitchTest{ public static void main(String[] args){ int n=5; for(int i=0;i<=n;i++){ for(int j=0;j

7输出输入的姓名

package pm;

import java.util.Scanner; public class SwitchTest{ public static void main(String[] args){ String name=null; Scanner sca=new Scanner (System.in); char firstChar; do{ System.out.println(\ name=sca.nextLine(); firstChar=name.charAt(0); }while(!(firstChar>='a' && firstChar<='z' ||

firstChar>='A' && firstChar<='Z')); System.out.println(\ } }

8一小时倒计时小程序

package pm;

import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;

public class SwitchTest { private JFrame frame; private JLabel jl1; private JLabel jl2; private JLabel jl3; /*主方法*/ public static void main(String[] args) { new SwitchTest().getTime(); } /*倒计时的主要代码块*/ private void getTime(){ long time=1*3600; long hour =0 ; long minute =0 ; long seconds=0; while(time>=0){ hour=time/3600; minute=(time-hour*3600)/60; seconds=time-hour*3600-minute*60; jl1.setText(hour+\时\ jl2.setText(minute+\分\

jl3.setText(seconds+\秒\ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } time--; } } /*构造 实现界面的开发 GUI */ public SwitchTest(){ frame = new JFrame(\倒计时\ jl1 = new JLabel(); jl2 = new JLabel(); jl3 = new JLabel(); init(); } /*组件的装配*/ private void init(){ JPanel jp=new JPanel(); jp.add(jl1); jp.add(jl2); jp.add(jl3); frame.add(jp); frame.setVisible(true); frame.setLocation(300,400); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

9棋盘图案

public class Sjx{

public static void main(String[] args){ int SIZE=19; for(int i=0;i

public class ArrayTest {

public static void main(String[] args){ char[][] arr=new char[4][7]; String s=\朝辞白帝彩云间千里江陵一日还两岸猿声啼不住轻舟已过万重山\ for(int i=0;i

} }

11找出满足条件的最小数

package day02; public class Fangk{ public static void main(String[] args){ // for(int i=1000;i<=9999;i++){ // int q=i/1000; // int b=i/100; // int s=i/10; // int g=i; // if(q>b && s>g && q+g==b+s && b%2!=0){ // System.out.println(\// break; // } // } loop1: for(int q=1;q<=9;q++){ loop2: for(int b=0;b<=9;b++){ if(b%2==0){ continue loop2; } for(int s=0;s<=9;s++){ for(int g=0;g<=9;g++){ if(q>b && s>g && q+g==b+s){ System.out.println(\is:\ break loop1; } } } } } } }

Min Number

12判断一个数是否是素数

package day02; public class Fangk{ public static void main(String[] args){ int num=14; boolean flag=true; for(int i=2;i<=num/2;i++){ if(num%i==0){ flag=false; break; } } if(flag){ System.out.println(num+\ }else{ System.out.println(num+\ } } }

////////////////////////////////////////////////////////////////////// package day04;

import java.util.Scanner;

public class A1{

public static void main(String[] args){ int n; Scanner sca=new Scanner(System.in); System.out.println(\ n=sca.nextInt(); if(isPrimeNumber(n)){ System.out.println(n+\ }else{ System.out.println(n+\

} }

public static boolean isPrimeNumber(int n){ for(int i=2;i<=n/2;i++){ if(n%i==0){ return false; } } return true; } }

13一个数倒序排列

package day02; public class Daoxu{ public static void main(String[] args){ int olddata=3758; int newdata=0; while(olddata!=0){ for(int i=0;i<4;i++){ newdata=newdata*10+olddata; olddata=olddata/10; } System.out.println(\ } } }

14将一个整数以二进制输出

package day04;

import java.util.Scanner;

public class ArrayTest {

public static void main(String[] args){ int n; Scanner s=new Scanner(System.in); System.out.println(\ n=s.nextInt(); for(int i=31;i>=0;i--){ if((n&(1<

15矩形图案

package day02;

public class Fangk { public static void main(String[] args){ int m=5,n=6; for(int i=0;i

} }

16猜数字

package day02;

import java.util.Scanner;

public class Csz { public static void main(String[] args) { Scanner s = new Scanner(System.in); int num = (int) (Math.random() * 1000); int m=0; for(int i=9;i>=0;i--){ System.out.println(\ m=s.nextInt(); if(m>num){ System.out.println(\ }else if(m0){ System.out.println(\还有\次机会!\ } } if( m!=num){ System.out.println(\下次再来吧!\ } } }

17.HotelManager

package hotel;

import java.util.Scanner;

public class HotelManager { private static String[][] rooms;// 表示房间 public static void main(String[] args) { rooms = new String[10][12]; String comm;// 表示用户输入的命令 for (int i = 0; i < rooms.length; i++) { for (int j = 0; j < rooms[0].length; j++) { rooms[i][j] = \ } } // while (true) { System.out.println(\请输入命令:\ Scanner sca = new Scanner(System.in); System.gc(); comm = sca.next(); if (\ search(); } else if (\ int roomNo = sca.nextInt(); String name = sca.next(); in(roomNo, name); } else if (\ int roomNo = sca.nextInt(); out(roomNo); } else if (\ System.out.println(\程序退出...\ break; } else { System.out.println(\命令输入错误,请重新输入:\ } } } private static void out(int roomNo) { if(\ System.out.println(\该房间没有客人入住,退房失败!\

}

return; }

rooms[(roomNo/100)-1][(roomNo0)-1]=\System.out.println(roomNo+\退房成功!\

private static void in(int roomNo, String name) { if(!\ System.out.println(\该房间已经有客人入住!\ return; } rooms[(roomNo/100)-1][(roomNo0)-1]=name; System.out.println(name+\成功入住\房间!\ }

private static void search() { for (int i = 0; i < rooms.length; i++) { //打印房间号 for (int j = 0; j < rooms[0].length; j++) { if (j + 1 < 10) { System.out.print(i + 1 + \\ } else { System.out.print(i + 1 + \ } } //打印房间状态 System.out.println(); for (int j = 0; j < rooms[0].length; j++) { System.out.print(rooms[i][j] + \\ } System.out.println(); } }

}

18.StudentManager

package day05.student_manager; import java.util.Scanner;

public class StudentManager { static int[][] scores=new int[6][5]; static String[] students={\ static String[] courses={\ public static void main(String[] args) { for(int i=0;i

// int cIndex=-1; for(int i=0;i

public static void sort(String course){ int[] courseScore=new int[scores.length]; if(course.equals(\如果求总分的排名 //求出每个学生的总分,将成绩存放在courseScore数组中 for(int i=0;i

courseScore[i]=studentSum; }

}else{//如果不是求总分排名 int cIndex=-1; for(int i=0;i

String[] studentCopy=new String[students.length];

System.arraycopy(students, 0, studentCopy, 0, students.length);

for(int i=0;i

int order=1;

System.out.println(\名次\\t学生\\t成绩\for(int i=0;i

} System.out.print(order+\ System.out.print(studentCopy[i]+\ System.out.println(courseScore[i]); order++; } }

public static void get(String student,String course){ int sIndex=-1; int cIndex=-1; for(int i=0;i

if(sIndex==-1){ System.out.println(\没有这个学生:\ return; }

if(course.equals(\如果求总分 int studentSum=0; for(int j=0;j

for(int i=0;i

if(cIndex==-1){ System.out.println(\没有这门课程:\ return; }

System.out.println(student+\学生的\课程的成绩为

\ } }

19.Five

package hotel;

import java.util.Scanner; /**

* 首先在程序第一次运行的时候,构建出棋盘,切以后

* 不能再从新构建,知道结束,所以将其放到静态代码块中。 * @author zhz * */

public class Five { //由于矩阵要保存输入的信息,所以要设置成全局变量,整个程序就一个 private static String[][] five=new String[17][17]; static{ //构建并打印棋盘 drawFive(); } public static void main(String[] args) { //请白棋下子 while(true){ System.out.println(\请白棋下子\ Point p1=pleaseIn(); if(!five[Integer.parseInt(p1.getX())][Integer.parseInt(p1.getY())].equals(\ System.out.println(\无效的位置,视为自动放弃\ } runPoint(p1,\ gameover(p1); System.out.println(\请黑棋下子\ Point p2=pleaseIn();

if(!five[Integer.parseInt(p2.getX())][Integer.parseInt(p2.getY())].equals(\ System.out.println(\无效的位置,视为自动放弃\ } runPoint(p2,\ gameover(p2); } } //根据用户的输入信息,对棋盘的坐标进行赋值,白棋@ 黑棋O,并且将当前棋盘的信息输出 private static void runPoint(Point p,String str){ //根据px py来获取行和列的坐标 int x=Integer.parseInt(p.getX()),y=Integer.parseInt(p.getY()); if(str.equals(\ five[x][y]=\ }else{ five[x][y]=\ } outFive(); } //用户输入要放棋子的坐标 并且自动转换为具体的坐标 private static Point pleaseIn(){ Scanner sc=new Scanner(System.in); Point p=new Point(sc.next(),sc.next()); String px=p.getX(); String py=p.getY(); //根据px py来获取行和列的坐标 int x=0,y=0; for(int i=1;i

*/

public static void gameover(Point p) { int x=Integer.parseInt(p.getX()),y=Integer.parseInt(p.getY()); int c1 = 0, c2 = 0, c3 = 0, c4 = 0; boolean l1 = true, l2 = true, l3 = true, l4 = true, l5 = true, l6 = true, l7 = true, l8 = true; for (int i = 1; i <5 ; i++) { // 竖直向上 if (y - i >= 1 && five[x][y - i].equals(five[x][y]) && l1) { c1++; } else { l1 = false; } // 竖直向下 if (y + i <= 16 && five[x][y + i].equals(five[x][y]) && l2) { c1++; } else { l2 = false; } // 水平向左 if (x - i >= 1 && five[x - i][y].equals(five[x][y]) && l3) { c2++; } else { l3 = false; } // 水平向右 if (x + i <= 16 && five[x + i][y].equals(five[x][y]) && l4) { c2++; } else { l4 = false; } // 斜向左上 if (x - i >= 1 && y - i >= 1 && five[x - i][y - i].equals(five[x][y]) && l5) { c3++; } else {

l5 = false; } // 斜向右下 if (x + i <= 16 && y + i <= 16 && five[x + i][y + i].equals(five[x][y]) && l6) { c3++; } else { l6 = false; } // 斜向左下 if (x - i >= 1 && y + i <= 16 && five[x - i][y + i].equals(five[x][y]) && l7) { c4++; } else { l7 = false; } // 斜向右上 if (x + i <= 16 && y - i >= 1 && five[x + i][y - i].equals(five[x][y]) && l8) { c4++; } else { l8 = false; } } if (c1 >= 4 || c2 >= 4 || c3 >= 4 || c4 >= 4) { if (five[x][y].equals(\ System.out.println(\黑棋获胜!\ System.exit(0); } else { System.out.println(\白棋获胜!\ System.exit(0); } } } //构造棋盘 private static void drawFive(){ //构建棋盘边框 String[] sr=new

\ five[0]=sr;

String[]{\

for(int i=0;i

20.CardGame

package day05.cardGame; import java.util.Scanner; public class CardGame { static int[] twoHandsCards=new int[6]; static int userAMoney=0; static int userBMoney=0; public static void main(String[] args) { Scanner s=new Scanner(System.in); System.out.println(\请输入总赌本:\ userAMoney=s.nextInt(); userBMoney=userAMoney; int currentMoney=0;

while(userAMoney>0 && userBMoney>0){ System.out.println(\请输入本局赌注:\ currentMoney=s.nextInt(); if(currentMoney<=0 || currentMoney>userAMoney || currentMoney>userBMoney){ System.out.println(\赌注不正确,请重新输入!\ continue; } dispatchCards(); printCards(twoHandsCards); if(compare()>0){ userAMoney+=currentMoney; userBMoney-=currentMoney; System.out.println(\玩家获胜!\ }else if(compare()<0){ userAMoney-=currentMoney; userBMoney+=currentMoney; System.out.println(\电脑获胜!\ }else{ System.out.println(\平局!\ } System.out.println(\玩家赌本:\电脑赌本:\ } } public static void dispatchCards(){ int i=0; while(i

} } }

public static void printCards(int[] oneHandCards){ for(int i=0;i

public static int compare(){ int[] aCards=new int[3]; int[] bCards=new int[3]; for(int i=0;i<3;i++){ aCards[i]=twoHandsCards[i]; } for(int i=3;i<6;i++){ bCards[i-3]=twoHandsCards[i]; } return fromCardsToNumber(aCards)-fromCardsToNumber(bCards); }

public static int fromCardsToNumber(int[] oneHandCards){ for(int i=0;i

for(int j=i+1;j

ds[2]0; } return num; } }

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下:

(1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。

import java.util.Scanner; class Bissextile{

public static void main(String[] arge){ System.out.print(\请输入年份\

int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){

System.out.println(\年份有误,程序退出!\ System.exit(0); }

if ((year%4==0)&&(year0!=0)||(year@0==0)) System.out.println(year+\ else

System.out.println(year+\ } }

2,给定一个百分制的分数,输出相应的等级。 90分以上 A级 80~89 B级 70~79 C级 60~69 D级 60分以下 E级

import java.util.Scanner; class Mark{

public static void main(String[] args){

System.out.println(\请输入一个分数\

//定义输入的分数为“mark”,且分数会有小数 double mark;

Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble();

//判断是否有输入错误。 if(mark<0||mark>100){

System.out.println(\输入有误! \ System.exit(0); }

/*判断分数的等级

90分以上者A级, 80~89分者 B级,70~79分者 C级, 60~69者 D级,60分以下 E级 */

if (mark>=90) System.out.println(\ else if (mark>=80) System.out.println(\ else if (mark>=70) System.out.println(\ else if (mark>=60) System.out.println(\ else System.out.println(\ } }

3,编写程序求 1+3+5+7+……+99 的和值。

class he{

public static void main(String[] args){

int number = 1; //初始值1,以后再+2递增上去 int sum = 0;

for ( ; number <100; number+=2 ){ sum += number; } System.out.println(\ } }

4、利用for循环打印 9*9 表? 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*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

//循环嵌套,打印九九乘法表 public class NineNine{

public static void main(String[]args){ System.out.println(); for (int j=1;j<10;j++){

for(int k=1;k<10;k++) { //老师的做法,判断语句里的 k<=j,省去下列的if语句。 if (k>j) break; //此处用 continue也可以,只是效率低一点 System.out.print(\ }

System.out.println(); } } }

6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,

例如: 153 = 1*1*1 + 3*3*3 + 5*5*5

class DafodilNumber{

public static void main(String[] args){

System.out.println(\以下是所有的水仙花数\

int number = 100; // 由于水仙花数是三位数,故由100开始算起

int i, j, k; // i j k 分别为number 的百位、十位、个位 for (int sum; number<1000; number++){

i=number/100; j=(number-i*100)/10; k=number-i*100-j*10; sum=i*i*i+j*j*j+k*k*k;

if (sum==number) System.out.println(number+\ } } }

7、求 a+aa+aaa+.......+aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定。

import java.util.Scanner; class Multinomial{

public static void main(String[] args){ int a; //定义输入的 a

int howMany; //定义最后的一项有多少个数字 Scanner scanner = new Scanner(System.in);

System.out.println(\请输入一个 1~9 的 a 值\ a = scanner.nextInt();

System.out.println(\请问要相加多少项?\ howMany = scanner.nextInt(); int sum=0;

int a1=a; // 用来保存 a 的初始值 for (int i=1; i<=howMany; i++){ sum+= a;

a = 10*a +a1; // 这表示a 的下一项

// 每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;注意,这时的 a 已经变化了。 }

System.out.println(\ } }

8、求 2/1+3/2+5/3+8/5+13/8.....前20项之和?

class Sum{

public static void main(Sting[] args){ double sum=0;

double fenZi=2.0, fenMu=1.0; //初始的分子 (fenZi)=2,分母(fenMu)=1 for(int i=1; i<=20; i++){ sum += fenZi / fenMu ;

fenMu = fenZi; //下一项的分母 = 上一项的分子

fenZi += fenMu; //下一项的分子 = 上一项的分子加分母 }

System.out.println(\ } }

9、利用程序输出如下图形: * * * *

* * * * * * * * * * * * * * * * * * * * *

class Asterisk{

public static void main(String[] args){ for (int i=1; i<=13; i+=2){

for(int j=1; j<=i && i+j<= 14; j++){System.out.print(\ System.out.println(); // 换行 } } }

11、计算圆周率

PI=4-4/3+4/5-4/7.......

打印出第一个大于 3.1415小于 3.1416的值

class Pi {

public static void main(String[] args){ double pi =0; //定义初始值 double fenZi = 4; //分子为4

double fenMu = 1; //第一个4,可看作分母为1 的分式,以后的分母每次递增2 for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确度小些

pi += (fenZi/fenMu) ;

fenZi *= -1.0; //每项分子的变化是+4,-4,+4,-4 ....

fenMu += 2.0; //分母的变化是1,3,5,7, .... 每项递加2 }

System.out.println(pi); } }

输出结果为pi = 3.1415926525880504,应该不精确

12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值 1 1 2 3 5 8 13 21 34 规律:一个数等于前两个数之和

//计算斐波那契数列(Fibonacci)的第n个值 public class Fibonacci{

public static void main(String args[]){

int n = Integer.parseInt(args[0]); int n1 = 1;//第一个数 int n2 = 1;//第二个数 int sum = 0;//和 if(n<=0){

System.out.println(\参数错误!\ return; }

if(n<=2){

sum = 1; }else{

for(int i=3;i<=n;i++){ sum = n1+n2; n1 = n2; n2 = sum; } }

System.out.println(sum); } }

//计算斐波那契数列(Fibonacci)的第n个值 //并把整个数列打印出来 public class FibonacciPrint{

public static void main(String args[]){ int n = Integer.parseInt(args[0]);

FibonacciPrint t = new FibonacciPrint(); for(int i=1;i<=n;i++){ t.print(i); } }

public void print(int n){ int n1 = 1;//第一个数 int n2 = 1;//第二个数 int sum = 0;//和 if(n<=0){

System.out.println(\参数错误!\ return; }

if(n<=2){

sum = 1; }else{

for(int i=3;i<=n;i++){

sum = n1+n2; n1 = n2; n2 = sum; } }

System.out.println(sum); } }

13、求1-1/3+1/5-1/7+1/9......的值。 a,求出前50项和值。

b,求出最后一项绝对值小于1e-5的和值。

15、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: * *** ***** ******* *********

//打印金字塔图案 public class PrintStar{

public static void main(String args[]){ int col = Integer.parseInt(args[0]); for(int i=1;i<=col;i++){//i表示行数 //打印空格

for(int k=0;k

//打印星星

for(int m=0;m<2*i-1;m++){ System.out.print(\ }

System.out.println(); } } }

16、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和 打印出所有的可能

//任何一个大于六的偶数可以拆分成两个质数的和

//打印出所有的可能 public class Gedebahe{

public static void main(String args[]){ int num = Integer.parseInt(args[0]); if(num<=6){

System.out.println(\参数错误!\ return; }

if(num%2!=0){

System.out.println(\参数错误!\ return; }

Gedebahe g = new Gedebahe();

//1不是质数,2是偶数,因此从3开始循环 for(int i=3;i<=num/2;i++){

if(i%2==0){//如果为偶数,退出本次循环 continue; }

//当i与num-i都为质数时,满足条件,打印 if(g.isPrime(i) && g.isPrime(num-i)){

System.out.println(i+\ } } }

第4章 数组

1. 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,

最小值,平均值,和值,并输出出来。

class ArrayNumber{

public static void main(String[] args){

int[] arrayNumber;

arrayNumber = new int[10];

System.out.println(\以下是随机的10个整数:\ // 填入随机的 10个整数

for (int i =0; i

arrayNumber[i] = (int)(100*Math.random()); System.out.print(arrayNumber[i]+\ }

System.out.println();

int max = arrayNumber[0]; int min = arrayNumber[0]; int sum = 0;

for (int i =0; i

max = arrayNumber[i]; //求最大值 if(min > arrayNumber[i])

min = arrayNumber[i]; //求最小值 sum += arrayNumber[i]; }

System.out.println(\其中 Max=\ } }

2.定义一个int型的一维数组,包含10个元素,分别赋值为1~10, 然后将数组中的元素都向前移一个位置,

即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。

3. 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数,

将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。

4. (选做)承上题,将这40个成绩按照从高到低的顺序输出出来。

5,(选做)编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值 为5,4,3,2,1。

6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。再定义一个 int型数组b,包含10个元素。统计a数组中的元素对10求余等于0的个数,保存 到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。

class Remain{

public static void main( String[] args){

int[] a = new int[100];

//保存100个随机4位数到 a 中 for (int i = 0; i < a.length; i++){ a[i] = (int) (1000*Math.random()); }

//统计 a 数组中的元素对 10 求余的各个的数目 int[] b = new int[10]; int k,sum;

for (int j = 0; j < b.length; j++){

for (k=0,sum=0; k < a.length; k++){ if ((a[k])==j) sum++; }

b[j] = sum;

System.out.printf(\ } } }

7,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课 按存储顺序依次为:core C++,coreJava,Servlet,JSP和EJB。 (1)循环给二维数组的每一个元素赋0~100之间的随机整数。 (2)按照列表的方式输出这些学员的每门课程的成绩。

(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。 (4)要求编写程序求所有学员的某门课程的平均分。

class Student{

public static void main(String[] args ){ int[][] mark = new int[20][5]; // 给学生赋分数值,随机生成 for ( int i = 0; ) } }//未完成

8,完成九宫格程序

在井字形的格局中(只能是奇数格局),放入数字(数字由),使每行每列以及斜角线的和都相等

经验规则:从 1 开始按顺序逐个填写; 1 放在第一行的中间位置;下一个数往右上角45度处填写;

如果单边越界则按头尾相接地填;如果有填写冲突,则填到刚才位置的底下一格;

如果有两边越界,则填到刚才位置的底下一格。

个人认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写,而且

填的时候还可以把头尾对应的数填到对应的格子中。(第 n 个值跟倒数第 n 个值对应,格局上以最中

间格为轴心对应)

这样就可以同时填两个数,效率比之前更高;其正确性有待数学论证(但多次实验之后都没发现有错)。

九宫格的 1 至少还可以填在另外的三个位置,只是接下来的填写顺序需要相应改变; 再根据九宫格的对称性,至少可以有8种不同的填写方式

import java.util.Scanner; class NinePalace{

public static void main(String[] args){

// 定义 N 为九宫格的行列数,需要输入

System.out.println(\请输入九宫格的行列规模(只能是奇数的)\ Scanner n = new Scanner(System.in); int N;

//判断格局是否奇数 (可判断出偶数、负数 及小数) double d; while (true){

d = n.nextDouble(); N = (int)d;

if ((d-N)>1.0E-4||N%2==0||N<0)

{System.out.println(\输入出错,格局只能是正奇数。请重新输入\ else break; }

//老师的九宫格填写方法

int[][] result = new int[N][N]; //定义保存九宫格的数组 int row = 0; //行 初始位置

int col = N/2; //列 初始位置,因为列由0开始,故N/2是中间位置 for (int i=1; i<=N*N; i++){ result [row][col] = i; row--; col++;

if (row<0&&col>=N){col--;row+=2;} //行列都越界 else if (row<0){ row = N-1;} //行越界 else if (col>=N){col = 0;} //列越界

else if (result[row][col] != 0){col--;row+=2;} //有冲突 }

本文来源:https://www.bwwdw.com/article/x30g.html

Top