第一天

记事本编写,练习基本功

1.求圆的面积
2.编写程序,已知圆柱体的底面半径R,和高H,求圆柱体的体积 V=PIrrh
3.求一个长方形的周长和面积。
4.设int a = 9;分别求出 a+=10 , a-=5, a
=8, a/=3的结果
5.设int x = 8;分别求出 ++x和x++的结果
6.设int m = 9,n;分别计算n=++m 和 n=m++ 后 ,m 和n的结果是多少?

public class  yuan{
 	public static void main(String [] args){
                  double radius=5;
	  double area;
	  System.out.println("请输入半径值");
	  area =Math.PI * radius*radius;
	 System.out.println("圆的面积为"+area);
	  
    }
 }
public class yuanzhuti{ 
        public static void main (String [] args ){
           double radius = 4;
           double height = 3;
           double area;
           area= Math.PI*radius*radius*height;
           System.out.println("area="+area);
  }
}
public class changfangxing{
   public static void main(String [] args){
	int a=4;
	int b=5;
	int area ;
	area =a *b;
	System.out.println("area="+area);
   }
}
public class text4{
         public static void main(String [] args){
	int  a =9;
	System.out.println(a+=10);
	System.out.println(a-=5);
	System.out.println(a*=8);
	System.out.println(a/3);
   }
}
public class text5{
      public static void main(String [] args){
	int x=8;
	System.out.println(++x);
	System.out.println(x++);
}
}
public class text6{
    public static void main(String [] args){
	int m =9;
	int  n;
	n=++m;
	System.out.println(n);
	System.out.println(m);
	n=m++;
	System.out.println(n);
	System.out.println(m);
  }
}

第二天

  1. 源文件名是否必须与类名相同?如果不是,那么什么情况下,必须相同?
    源文件名不是必须和类名相同,只有此类为公共类时即由public修饰的类时才必须相同
  2. 程序中若只有一个public修饰的类,且此类含main方法。那么类名与源文件名可否不一致?
    不可以,public修饰的类的类名必须与文件名保持一致,并且每个文件中只能有一个public修饰的类
  3. 为什么要设置path(或者说,设置path的目的是什么)?
    若不设置path那么每次调用javac.exe和java.exe时都需要输入其jdk地址,若配置了环境变量则调用javac.exe和java.exe时可直接调用
    4.问题:System.out.println()和System.out.print()什么区别呢?
    System.out.println()有换行操作而System.out.print()无换行操作
    5.打印如下心形
public class demo{
	public static void main(String args[]){
		System.out.println("  *                            * ");
		System.out.println("*     *  I  love   Java    *    *");
		System.out.println("  *                         *");
		System.out.println("    *                    *");
		System.out.println("      *               *");
		System.out.println("        *           *");
		System.out.println("          *       *");
		System.out.println("            *   *");
		System.out.println("              * ");

	}
}

第三天

  1. 键盘接收用户输入的注意点
  1. 在代码最前面导入包,import java.util.Scanner;
  2. 创建一个Scanner对象,Scanner input=new Scanner(System.in); 一个方法只需编写一次创建Scanner对象
  3. 输出一个提醒语言,System.out.println(“输入一个”);
  4. 键盘的接收,int a= input.nextInt();回车键就代表数字输入完成,并把输入的值赋值给左侧变量a
  1. 从键盘接收字符串类型时,用nextString(),还是next()

用next(),nextInt()是接收整数类型,nextDouble()是接收小数类型

  1. 设计一个程序,实现任意两个整数之和
Import java.util.Scanner;
Public class text2{
   Public static void main(String [] args){
		Scanner input =new  Scanner(System.in);
		System.out.println(“输入一个整数”);
		Int a =input.nextInt();
		System.out.println(“输入一个整数”);
		Int b =input.nextInt();
		Int sum =a +b;
		System.out.println(“a +”+”b =”+sum);

	}
}
  1. 依据如下程序推演出结果

46
5.输入一个数,判断它是否能被3、5、7整除,注意考虑同时整除的情况

import java.util.Scanner;
public class text4{
   public static void main(String [] args){
	Scanner input = new Scanner(System.in);
	System.out.println("shu");
	int a = input.nextInt();
	if(a%3==0  && a%5==0 && a%7==0){
		System.out.println("3,5,7/"+a);
	}else if(a%3==0  &&  a%7==0){
		System.out.println("3+7/\t"+a);
                }else if(a%5==0  &&  a%7==0){
		System.out.println("5+7/\t"+a);
                }else if(a%3==0  &&  a%5==0){
		System.out.println("3+5/\t"+a);
                }else if(a%3==0){
		System.out.println("3/\t"+a);
                }else if(a%5==0){
		System.out.println("5/\t"+a);
                }else if(a%7==0){
		System.out.println("7/\t"+a);
	}else{
		System.out.println("no");
	}	
}
}

6.做学院评奖系统,1)如果数学成绩大于80分并且语文成绩大于80分,获奖学金500元。2)如果数学小于30并且语文小于30分,输出重修。

import java.util.Scanner;
public class text5{
   public static void main(String [] args){
	Scanner input = new Scanner(System.in);
	System.out.println("shu");
	int a = input.nextInt();
	System.out.println("yu");
	int b = input.nextInt();
	if(a>80  && b>80){
		System.out.println("500yuan");
	}else if(a<30 &&  b<30){
		System.out.println("chongxiu");
                }else{
		System.out.println("wu");
                }	
}
}

7.输入三个数,如果其中有一个值大于1000,则提示,输入的数值有大于1000的。

import java.util.Scanner;
public class text6{
   public static void main(String [] args){
	Scanner input = new Scanner(System.in);
	System.out.println("shu");
	int a = input.nextInt();
	System.out.println("shu");
	int b = input.nextInt();
	System.out.println("shu");
	int c = input.nextInt();
	if(a>1000  || b>1000 || c>1000){
		System.out.println("chaogou1000");
	}else {
		System.out.println(a+"\t"+b+"\t"+c);
                }	
}
}

8.定义一个字符,判断是否为字母。

import java.util.Scanner;
public class text7{
   public static void main(String [] args){
	Scanner input = new Scanner(System.in);
	System.out.println("shu");
	char  a = input.next().charAt(0);
	if(a>=65&&a<=122){
	System.out.println("zm");
	}else{
	System.out.println("no");
}
	}
}

9.一位学生参加了三门不同科目的考试,计算并显示所得的总分和平均分同时显示单科所得分数。

import java.util.Scanner;
public class text8{
   public static void main(String [] args){
	Scanner input = new Scanner(System.in);
	System.out.println("shu");
	double a = input.nextDouble();
	System.out.println("yu");
	double b = input.nextDouble();
	System.out.println("ying");
	double c = input.nextDouble();
	double sum =a+b+c;
	double age =sum/3;
	System.out.println("sum:"+sum);
	System.out.println("age:"+age);
	System.out.println("shu:"+a+"yu:"+b+"ying:"+c);
	}
}

10.定义三个数a=10,b=20,c=30 a+=10;b-=4; c%=2; 输出a b c 的结果

import java.util.Scanner;
public class text9{
   public static void main(String [] args){
	int a=10,b=2,c=30;
	a+=10;
	b-=4;
	c%=2;
	System.out.println("a:"+a);
	System.out.println("b:"+b);
	System.out.println("c:"+c);
	}
}

11.定义三个数,求出其中的最大值

import java.util.Scanner;
public class text10{
   public static void main(String [] args){
	Scanner  input =new Scanner(System.in);
	System.out.println("shu");
	int a = input.nextInt();
	System.out.println("shu");
	int b = input.nextInt();
	System.out.println("shu");
	int c = input.nextInt();
	if(a>b){

	if(a>c){
	System.out.println("max"+a);
	}else if(c>a){
	System.out.println("max"+c);
	}
	}else if(b>c){
	System.out.println("max"+b);
	}else if(c>b){
	System.out.println("max"+c);
}
	}
}

第三天

友情提示:提供的代码仅供参考

1、盈盈为了考验令狐冲夺冠的决心,要他说一百遍“我能行!”

public class text1{
    public static void main(String [] args){
	/*for(int i=0;i<=100;i++){
	System.out.println(i+"wnx!");
}*/
	int j =1;
	do{
	j++;
	System.out.println(j+"wnx!");
	}while(j<=100);
}
}

public class Demo1 {
/**
* 1、盈盈 为了考验 令狐冲 夺冠的决心,要他说一百遍“我能行!”
*
* 为什么会用到循环?
*/
public static void main(String[] args) {
//for
for(int i = 1 ; i <= 100 ; i++){
System.out.println(“第”+i+“遍:我能行”);
}

//while System.out.println("=======while======="); int i = 1; while( i <= 100){ System.out.println("第"+i+"遍:我能行"); i++; } //do...while System.out.println("=======do...while======="); //while int j = 1; do{ System.out.println("第"+j+"遍:我能行"); j++; } while( j <= 100); } }

2、本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(用double存储)

public class text2{
    public static void main(String [] args){
	double a =10000;
	for(int i=1;i<=5;i++){
	a =a+a*0.003;
	}
	System.out.println("a:"+a);
   }
}

public class Demo2 {
public static void main(String[] args) {
/**
* 2、本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(用double存储)
* 为什么会用到循环?
/
double balance = 10000;
double liLv = 0.003;
for (int i = 1; i <= 5; i++) {
/
balance = balance + balance * liLv;*/
balance += balance * liLv;
}
System.out.println(balance);
} }

3、计算出1-100之间所有能被3整除的整数的和?

public class text3{
    public static void main(String [] args){
	int sum=0;
	for(int i=1;i<100;i++){
	if(i%3==0){
	sum +=i;
	}
	}
	System.out.println("sum:"+sum);
   }
	
}

public static void main(String[] args) {
/**
* 3、计算出1-100之间所有能被3整除的整数的和?
* 为什么会用到循环?
*/
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
if(i % 3 == 0){
/sum = sum + i;/
sum += i ;
}
}
System.out.println(“1-100之间所有能被3整除的整数的和:”+sum); }

4、计算1000以内所有不能被7整除的整数之和?

public class text4{
    public static void main(String [] args){
	int num=0; 
	for(int i=1;i<=1000;i++){
	if(i%7!=0){
	num +=i;
	}
	}
	System.out.println("num:"+num);
   }
	
}

/*public class text4{ public static void main(String[] args) {

int sum = 0; for(int i = 1 ; i <= 1000 ; i++){ if(i % 7 != 0){ sum += i ; } } System.out.println("1000以内所有不能被7整除的整数之和:"+sum); } }*/

public static void main(String[] args) {
/**
* 4、计算1000以内所有不能被7整除的整数之和?
* 为什么会用到循环?
*/
int sum = 0;
for(int i = 1 ; i <= 1000 ; i++){
if(i % 7 != 0){
sum += i ;
}
}
System.out.println(“1000以内所有不能被7整除的整数之和:”+sum);

/* int sum = 0;
for (int i = 0; i <= 1000; i++) {
if (i % 7 == 0) {
continue;
}
sum += i;
}
System.out.println(sum);*/ }

5、用while做 求10到20的累加和

public class text5{
    public static void main(String [] args){
	int i=10;
	int sum=0;
	while(i<=20){
	sum+=i;
	i++;
	}
	System.out.println("10到20的累加和"+sum);
   }
	
}

public static void main(String[] args) {
/**
*5、用while做 求10到20的累加和
* 为什么会用到循环?
*/
int i = 10;
int sum = 0;
while(i <= 20){
sum += i;
i++;
}
System.out.println(“sum=”+sum);
} }

6、输入一个数,判断这个数是否是素数;

import java.util.Scanner;
public class text6{
    public static void main(String [] args){
	Scanner scanner = new Scanner(System.in);
 	System.out.println("请输入一个整数");
	boolean flag = false;//不是
	int num = scanner.nextInt();
	for (int i = 2; i < num; i++) {
            	    if (num % i != 0) {
                          flag = true;
            }
        }
        if (flag) {
            System.out.println(num + "是素数");
        }else{
            System.out.println(num + "不是素数");
        }

   }

public class Demo6 {
public static void main(String[] args) {
/**
* 6、输入一个整数,判断这个数是否是素数;
* 2、3、5、7、11、13、17、19。
*/
/Scanner scanner = new Scanner(System.in);
System.out.println(“请输入一个整数”);
boolean flag = false;//不是
int num = scanner.nextInt();
for (int i = 2; i < num; i++) {
if (num % i != 0) {
flag = true;
}
}
if (flag) {
System.out.println(num + “是素数”);
}else{
System.out.println(num + “不是素数”);
}
/

Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int i; for (i = 2; i < n; i++) { if (n % i == 0) { System.out.println(n + "不是素数"); break; } } if (n==i){ System.out.println(n+"是素数"); } } }

7、定义一个正整数如:1205 统计它的各位数字中零的个数,并求各位数字中的最大者。
public class Demo7 {
/**
* 7、定义一个正整数如:1205 统计它的各位数字中零的个数,并求各位数字中的最大者。

public class text7{
    public static void main(String [] args){
	int num =1025;
	int age=0;
	while(num>0){
	   int x=num%10;
	   if(x==0){
	       age++;
	}
	   num=num/10;
	}
	System.out.println("含零位:"+age);
	//System.out.println(a);
   }

}

*/

public static void main(String[] args) { int num = 12000; int count = 0;//用来统计0的个数 //利用循环取出各个位置的数 while (num > 0) { int x = num % 10; if ( x == 0){ count++; } num = num / 10; } System.out.println(num+"中各位数字中零的个数:"+count); } }

8、有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完

public class text8{
    public static void main(String [] args){
	int num=1020;
	int day =0;
	while(num >0){
	num=num/2-2;
	day++;
}
	System.out.println("第"+day+"天");
   }
	
}

public class Demo8 {
/**
* 8、有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完
*

* 卖西瓜的问题:
* 西瓜的总数:一共有1020个习惯
* 如何卖的:
* 第一天:卖掉总数的一半后又多卖出两个 1020 / 2 = 510 - 2 = 508
* 第二天:以后每天卖剩下的一半多两个 508 / 2 = 254 - 2 = 252
* 第三天:以后每天卖剩下的一半多两个 252 / 2 = 126 - 2 = 124
* 第四天:以后每天卖剩下的一半多两个 124 / 2 = 62 - 2 = 60
* 第五天:以后每天卖剩下的一半多两个 60 / 2 = 30 - 2 = 28
* 第六天:以后每天卖剩下的一半多两个 28 / 2 = 14 - 2 = 12
* 第七天:以后每天卖剩下的一半多两个 12 / 2 = 6 - 2 = 4
* 第八天:以后每天卖剩下的一半多两个 4 / 2 = 2 - 2 = 0
* 问题:几天后能把1020个西瓜卖完?
*

* 原则:有西瓜才能卖,只要西瓜个数大于0就按照每天的规则一直卖,直至为0了,那么中间所经历的天数就是
* 卖西瓜的天数
*
* @param args
*/
public static void main(String[] args) {
int xiGua = 1020;
int day = 0;
while (xiGua > 0) {
xiGua = xiGua / 2 - 2;
day++;
}
System.out.println(day + “天以后能卖完”);
} }

9、猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?

public class text9{
    public static void main(String [] args){
	int num=1;
	int day =9;
	while(day>0){
	num =2*(num+1) ;
	day--;
}
	System.out.println(num);
   }
	
}

10、循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误(使用break)

import java.util.Scanner;
public class text10{
    public static void main(String [] args){
	int age=0;
	int num=0; 
	for(int i=0;i<=5;i++){
	    Scanner input =new Scanner(System.in);
	    System.out.println("请输入一科成绩");
	    age= input.nextInt();
	if(age>0){
	    num +=age;
 	}else{
	    System.out.println("录入错误");
	break;
		}
	  }
	int a=num/5;
                   System.out.println(num);
	System.out.println(a);
   }
	
}

import java.util.Scanner; public class text10{ public static void main(String [] args){ int age=0; int num=0; for(int i=0;i<=5;i++){ Scanner input =new Scanner(System.in); System.out.println("请输入一科成绩"); age= input.nextInt(); if(age>0){ num +=age; }else{ System.out.println("录入错误"); break; } } int a=num/5; System.out.println(num); System.out.println(a); }

11、循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例(使用continue)
public class Demo11 {

import java.util.Scanner;
public class text11{
    public static void main(String [] args){
	int a=0;
	Scanner input =new Scanner(System.in);
	System.out.println("请输入人数");
	int n =input.nextInt();
	for(int i=0;i<n;i++){
	System.out.println("请输入java成绩");
	int sorce =input.nextInt();
	if(sorce>80){
	a++;
	continue;
	}
	}
	double b= a*100 / n;
	System.out.println("比例位"+b+"%");
	//System.out.println("分数大于80的学生比例为:" + (double) a / n * 100 + "%");
	
   }
	
}

/**
* 11、循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例(使用continue)
*

* 统计出分数大于等于 80分的学生人数,然后用次数除以学生总数再乘以100%即可
*
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入学生个数:”);
int n = sc.nextInt();//学生个数
int sum = 0;//分数大于80的学生个数
for (int i = 1; i <= n; i++) {
System.out.println(“请输入第” + i + “个学生的成绩:”);
double sorce = sc.nextDouble();
if (sorce >= 80) {
sum++;
}
}
System.out.println(“分数大于80的学生比例为:” + (double) sum / n * 100 + “%”);
} }

12、输出图型

*
**
***
****
*****
import java.util.Scanner;
public class text12{
    public static void main(String [] args){
	Scanner input =new Scanner(System.in);
	System.out.println("请输入行数");
	int n =input.nextInt();
	for(int i=1;i<=n;i++){
	       for(int j=0;j<i;j++){
	       System.out.print("*");}
	      System.out.println("");
}
   }
	
}

public class Demo12 {
/**
* 12、输出图型
* *
* **
* ***
* ****
* *****
* ******
*
* @param args
/
public static void main(String[] args) {
for(int i = 1 ; i <= 6 ; i++){
for(int j = 1 ; j <= i ; j++){
System.out.print("
");
}
System.out.println();
}
} }

13、输出图型

*******
******
*****
****
***
**
*
import java.util.Scanner;
public class text13{
    public static void main(String [] args){
	Scanner input =new Scanner(System.in);
	System.out.println("请输入行数");
	int n =input.nextInt();
	for(int i=0;i<=n;i++){
	       for(int j=n;j>i;j--){
	       System.out.print("*");}
	      System.out.println("");
}
   }
	
}

public class Demo13 {
/**
* 12、输出图型
* *
* **
* ***
* ****
* *****
* ******
*
* @param args
/
public static void main(String[] args) {
for(int i = 6 ; i >= 1 ; i–){
for(int j = 1 ; j <= i ; j++){
System.out.print("
");
}
System.out.println();
}
} }

14、把12、13题的两个图型合成一个

import java.util.Scanner;
public class text14{
    public static void main(String [] args){
	Scanner input =new Scanner(System.in);
	System.out.println("请输入行数");
	int n =input.nextInt();

	for(int i=1;i<=n;i++){
	       for(int j=0;j<i;j++){
	       System.out.print("*");}
	      System.out.println("");
}
	for(int i=0;i<=n;i++){
	       for(int j=n;j>i;j--){
	       System.out.print("*");}
	      System.out.println("");
}
   }
	
}

public class Demo14 {
/**
* 14、输出图型
* *
* **
* ***
* ****
* *****
* ******
*
* @param args
/
public static void main(String[] args) {
for(int i = 1 ; i <= 6 ; i++){
for(int j = 1 ; j <= i ; j++){
System.out.print("
");
}
System.out.println();
}

for(int i = 6 ; i >= 1 ; i--){ for(int j = 1 ; j <= i ; j++){ System.out.print("*"); } System.out.println(); } } }

15、编写一个九九乘法法

import java.util.Scanner;
public class text15{
    public static void main(String [] args){
	Scanner input =new Scanner(System.in);
	System.out.println("请输入行数");
	int n =input.nextInt();
	for(int i=1;i<=n;i++){
	       for(int j=1;j<=i;j++){
	       System.out.print(  i + "*" + j + "=" +i*j+"\t");
}
	      System.out.println("");
}
   }
	
}

public class Demo15 {
/**
* 15、编写一个九九乘法法
* @param args
/
public static void main(String[] args) {
for(int i = 1 ; i <= 9 ; i++){
for(int j = 1 ; j <= i ; j++){
System.out.print(j+"
“+i+”=“+(j * i)+”\t");
}
System.out.println();
}
} }

16、百钱买百鸡,有100元钱,要去买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,问公,母,小鸡各买多少只。
提示: a+b+c=100 只
5a+3b+1/3c=100钱

package text16;
 
public class text_1 {
	public static void main(String[] args) {
		for(int a=0;a<20;a++) {
			for(int b=0;b<100;b++) {
				for(int c=0;c<100;c++) {
				if(a+b+c==100 && 5*a+3*b+c/3==100){
					System.out.println("公鸡:"+a+"只,母鸡:"+b+"只,小鸡:"+c+"只");
				}
			}
		}	
	}	
	}
}

public class Demo16 {
/**
* 16、百钱买百鸡,有100元钱,要去买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,
* 问公,母,小鸡各买多少只。
* 提示: a+b+c=100 只
* 5a+3b+1/3c=100钱
*

* 公鸡5元一支,若全买公鸡,最多买20只
* 母鸡3元一只,若全买吧
* 公鸡:0只,母鸡:25只,小鸡:75只
* 公鸡:3只,母鸡:20只,小鸡:77只
* 公鸡:4只,母鸡:18只,小鸡:78只
* 公鸡:7只,母鸡:13只,小鸡:80只
* 公鸡:8只,母鸡:11只,小鸡:81只
* 公鸡:11只,母鸡:6只,小鸡:83只
* 公鸡:12只,母鸡:4只,小鸡:84只
*
* 买鸡的原则:
* 公鸡、母鸡、小鸡,一共100只
* 公鸡、母鸡、小鸡,按照现在市场价格只能消费100元
*
* 公鸡:a只
* 母鸡:b只
* 小鸡:c只
*公鸡5元一只,母鸡3元一只,小鸡1元3只,
* a + b + c == 100
* 5 * a + 3 * b + c / 3 == 100
* 结论:无论有多少种买法,它只能在100只鸡和总钱数的100元下去买
*
* 问题:在这种情况下公鸡,母鸡,小鸡各自买多少只
* 公鸡5元一支,若全买公鸡,最多买20只-买了公鸡还得买母鸡
* 母鸡的钱最多消费100元–买了母鸡还得买小鸡
* 小鸡的钱最多消费100元-
*
* @param args
*/
public static void main(String[] args) {

for (int a = 0; a < 20; a++) { for (int b = 0; b < 100; b++) { for (int c = 0; c < 100; c++) { if (a + b + c == 100 && 5 * a + 3 * b + c / 3 == 100) { System.out.println("公鸡:" + a + "只,母鸡:" + b + "只,小鸡:" + c + "只"); } } } } } }

17、星型图案

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

/**
* 17、星型图案

import java.util.Scanner;
public class text17{
    public static void main(String[] args) {
 	for(int i =1;i<=5;i++){
	  for(int j=1;j<=5-i;j++){
	   System.out.print(" ");
	}
	for( int k=1;k<=2*i-1;k++){
	 System.out.print("*");
	}
 	for(int l=1;l<=5-i;l++){
	   System.out.print(" ");
	}
	 System.out.println(" ");
	}     
}
}

* 星的个数:1 3 5 7 9 * 空格个数:4 3 2 1 * * 2n-1 * @param args */ public static void main(String[] args) { for(int i = 1 ; i <= 5 ; i++) { for(int k = 1 ; k <= 5 - i ; k++){ System.out.print(" "); } for(int j = 1 ; j <= 2 * i - 1 ; j++){ System.out.print("*"); } for(int n = 1 ; n <= 5 - i ; n++){ System.out.print(" "); } System.out.println(); } } }

18、把上图形再倒过来,合成一个菱形图案

import java.util.Scanner;
public class text18{
    public static void main(String[] args) {
 	for(int i =1;i<=5;i++){
	  for(int j=1;j<=5-i;j++){
	   System.out.print(" ");
	}
	for( int k=1;k<=2*i-1;k++){
	 System.out.print("*");
	}
 	for(int l=1;l<=5-i;l++){
	   System.out.print(" ");
	}
	 System.out.println(" ");
	}     




	for(int i =1;i<=5;i++){
	  for(int j=1;j<=i;j++){
	   System.out.print(" ");
	}
	for( int k=7;k>=2*i-1;k--){
	 System.out.print("*");
	}
 	
	 System.out.println(" ");
	}     
  
}
}

public class Demo18 {
/**
* 18、把上图形再倒过来,合成一个菱形图案
* 星的个数:1 3 5 7 9
* 空格个数:4 3 2 1
*
*
* 0 1 2 3 4
* 2n-1
* @param args
/
public static void main(String[] args) {
for(int i = 5 ; i >= 1 ; i–) {
for(int k = 0 ; k <= 5 - i ; k++){
System.out.print(" “);
}
for(int j = 1 ; j <= 2 * i - 1 ; j++){
System.out.print(”
“);
}
for(int n = 0 ; n <= 5 - i ; n++){
System.out.print(” ");
}
System.out.println();
}
} }

19、求300-400之间的素数

import java.util.Scanner;
public class text19{
     public static void main(String [] args){
	Scanner input = new Scanner(System.in);
	System.out.println("请输入一个300-400的数");
	int i=input.nextInt();
	if(i>=300&&i<=400){
	     for(int j=2;j<i-1;j++ ){
	     if(i%j==0){
	    	System.out.println(i+"不是素数");
		break;
              } else{System.out.println(i+"是素数");}
	  	break;
          }
      }else{System.out.println("超出范围");};
   }
}

public class Demo19 {
/**
* 19、求300-400之间的素数
* @param args
/
public static void main(String[] args) {
System.out.println(“300-400之间的素数有:”);
for (int i = 300; i < 400; i++) {
boolean flag = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag == true) {
System.out.print(i + " ");
}
}
/
*
* 300-400之间的素数有:
* 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397
*/
} }

20、用while做 鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?要求鸡兔至少一样一只。

import java.util.Scanner;
public class text20{
     public static void main(String [] args){
	int chicken=1;
	while(chicken <50){
	if(chicken*2+4*(50-chicken)==160){
	System.out.println("鸡"+chicken+"兔"+(50-chicken));
      }
	chicken++;
     }
   }
}

public class Demo21 {
/**
* 21、用while做鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?(要求鸡兔至少一样一只)。
* 问题拆解:
* 核心条件:鸡兔一共有50只,脚一共有160只,
* 问题:问在这样的条件下鸡和兔各多少只
*
* 设:小鸡chicken只(要求鸡兔至少一样一只) 兔:50-chicken
*
* chicken只鸡的脚丫子+50-chicken只兔子的脚丫子==160
* 2 * chicken + 4 * (50 - chicken) == 160
* 在此种情况下,问"鸡有" + chicken + “只,兔有” + (50 - chicken) + “只”
*
* 循环的条件是什么?
* 一共鸡兔50只(鸡、兔至少各一只) 其实无论鸡兔各自是多少只,最终鸡的数量或者兔子的数量一定小于50
* 只有在小于50的情况下,依据鸡兔一共有50只,脚一共有160只的规则计算出的鸡的数量,兔的数量才有意义。
*
* 也就是在这个情况下,鸡的数量可以是任意的,可以是1只,可以是2只,也可以是3只,只要满足上述条件即可
*
*
*
*
* @param args
*/
public static void main(String[] args) {
int chicken = 1;
while (chicken < 50) {
if (2 * chicken + 4 * (50 - chicken) == 160) {
System.out.println(“鸡有” + chicken + “只,兔有” + (50 - chicken) + “只”);
}
chicken++;
}
} }

21、有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?

分析:兔子的规律为数列,1,1,2,3,5,8,13,21

public class text21{
    public static void main(String [] args){
	int f1=1;
	int f2=1;
	int sum=0;
	for(int i =3;i<=12;i++){
	sum=f1+f2;
	f1=f2;
	f2=sum;
    }
	System.out.println("12月之后有"+sum);
  }
}

public class Demo21 {
/**
* 22、有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。
* 已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。
* 假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
* 分析:兔子的规律为数列,1,1,2,3,5,8,13,21
*
* 分析得到:
* 人物:兔子繁殖的故事
* 说明:已知有一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子
* 问题:假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
* 思路:兔子每个月繁殖的过程是怎么样的?(推演兔子每个月的繁殖过程)析:兔子的规律为数列,1,1,2,3,5,8,13,21是怎么来的
*
* 由已知有一对兔子每个月可以生一对小兔子可知,
* 截至1月份:一共就繁殖了1对小兔子-这对小兔子是由老兔子生的
* 截至2月份:一共也繁殖了1对小兔子-这对小兔子也是由老兔子生的,此时1月份繁殖的兔子,不可能生的,因为还没到3个月(3个月起)
* 截至3月份:一共繁殖了2对小兔子-其中1对是由老兔子生的,另外的一对是由1月份繁殖的小兔子生的(因为此时已经达到了3个月)
* 截至4月份:一共繁殖了3对小兔子-其中第1对是由老兔子生的,第2对是由1月份兔子生的,第3对是由2月份兔子生的(此时3月份的兔子由于还为达到3月,所以不繁殖)
* 截至5月份:一共繁殖了5对小兔子-
* 其中第1对是由老兔子生的,
* 第2对是由1月份兔子生的,
* 第3对是由2月份兔子生的,
* 第4对,第5对是由3月份对兔子分别生的
*
* 截至在6月份:一共繁殖了8对小兔子-
* 其中第1对是由老兔子生的,
* 第2对是由1月份兔子生的,
* 第3对是由2月份兔子生的,
* 第4对,第5对是由3月份2对兔子分别生的,
* 第6对,第7对,第8对是4月份的3对小兔子分别生的
*
* 截至在7月份:一共繁殖了13对小兔子-
* 其中第1对是由老兔子生的,
* 第2对是由1月份兔子生的,
* 第3对是由2月份兔子生的,
* 第4对,第5对是由3月份2对兔子分别生的,
* 第6对,第7对,第8对是4月份的3对小兔子分别生的
* 第9对,第10对,第11对,第12对,第13对是5月份的5对小兔子分别生的
*
* 截至在8月份:一共繁殖了21对小兔子-
* 其中第1对是由老兔子生的,
* 第2对是由1月份兔子生的,
* 第3对是由2月份兔子生的,
* 第4对,第5对是由3月份2对兔子分别生的,
* 第6对,第7对,第8对是4月份的3对小兔子分别生的
* 第9对,第10对,第11对,第12对,第13对是5月份的5对小兔子分别生的
* 第14对,第15对,第16对,第17对,第18对,第19对,第20对,第21对是6月份的8对小兔子分别生的
*
* 分析:兔子的规律为数列,1,1,2,3,5,8,13,21
1月 2月 3月 4月 5月 6月 7月 8月
1 1 2 3 5 8 13 21
*
*
* 最终得出的结论(规律):除前2个月外,从第三个月起,每个月繁殖的兔子都是前2个月的兔子之和,于是乎有了下面的规律:
*
* 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
* 1 1 2 3 5 8 13 21 34 55 89 144
* 依据推演可以知道假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成144对
*
*
* 问题:站在程序的角度该如何实现
* 核心:除前2个月外,从第三个月起,每个月繁殖的兔子都是前2个月的兔子之和,
* 这里面的前2个月兔子不是永远指1月和2月 ,繁殖兔子的数量也不是一成不变的,相反它是不断发生变化的
*
* 比如:
* 3月繁殖的兔子:1月(1对)+2月(1对)=2对
* 4月繁殖的兔子:2月(1对)+3月(2对)=3对
* 5月繁殖的兔子:3月(2对)+4月(3对)=5对
* 6月繁殖的兔子:4月(3对)+5月(5对)=8对
* 7月繁殖的兔子:5月(5对)+6月(8对)=13对
* 8月繁殖的兔子:6月(8对)+7月(13对)=21对
* 9月繁殖的兔子:7月(13对)+8月(21对)=34对
* 10月繁殖的兔子:8月(21对)+9月(34对)=55对
* 11月繁殖的兔子:9月(34对)+10月(55对)=89对
* 12月繁殖的兔子:10月(55对)+11月(89对)=144对
*
* 用程序实现的思路就是:
* 1.先把前2个月的繁殖的兔子,单独提取出来用变量存储 比如:
* int f1 = 1;
* int f2 = 1;
* 2.用循环模拟兔子从第三月起繁殖的过程并记录繁殖数量的结果(sum):
int sum = 0;用来临时记录兔子的繁殖数量的
for(int i = 3 ; i <= 12 ; i++){

} * 3.在循环的过程中,完成所谓的"前2个月"的繁殖兔子数量值的更新 * 这里面的前2个月兔子不是永远指1月和2月 ,繁殖兔子的数量也不是一成不变的,相反它是不断发生变化的 * * * * 比如: * * 3月繁殖的兔子:1月(1对)+2月(1对)=2对 * * 4月繁殖的兔子:2月(1对)+3月(2对)=3对 * * 5月繁殖的兔子:3月(2对)+4月(3对)=5对 * * 6月繁殖的兔子:4月(3对)+5月(5对)=8对 * * 7月繁殖的兔子:5月(5对)+6月(8对)=13对 * * 8月繁殖的兔子:6月(8对)+7月(13对)=21对 * * 9月繁殖的兔子:7月(13对)+8月(21对)=34对 * * 10月繁殖的兔子:8月(21对)+9月(34对)=55对 * * 11月繁殖的兔子:9月(34对)+10月(55对)=89对 * * 12月繁殖的兔子:10月(55对)+11月(89对)=144对 * sum = f1(1月) + f2(2月);//3月繁殖的兔子:1月(1对)+2月(1对)=2对(核心规律:每个月繁殖的兔子都是前2个月的兔子之和) * * 下次就是4月繁殖的兔子:2月(1对)+3月(2对)=3对 * sum = f1(2月) + f2(3月); * f1(2月) = f2; * f2(3月) = sum; * * 再下次就去求 5月繁殖的兔子:3月(2对)+4月(3对)=5对 * sum = f1(3月) + f2(4月); * * f1(3月) = f2; * * f2(4月) = sum; * * 4.输出一对兔子一年内能繁殖成的数量: System.out.println("一对兔子一年内能繁殖成" + sum + "对。"); * * @param args */ public static void main(String[] args) { int f1 = 1; int f2 = 1; int sum = 0; //模拟,老兔子,新兔子一起生的过程 for (int i = 3; i <= 12; i++) { sum = f1 + f2; f1 = f2; f2 = sum; } System.out.println("一对兔子一年内能繁殖成" + sum + "对。"); } }

第四天

1.编写程序,定义三个重载方法并调用。方法名为mOL。 三个方法分别接收一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类的main ()方法中分别用参数区别调用三个方法。

package javaDay04;

public class eventext1 {

    public static void main(String[] args) {
        mOL(2);
        mOL(4,6);
        mOL("helloworld");
    }

    private static void mOL(int a) {
        a *=a;
        System.out.println("平方"+a);
    }
    private static void mOL(int a ,int b) {
        int c=a *b;
        System.out.println("两者相乘"+c);
    }
    private static void mOL(String z) {

        System.out.println(z);
    }

}

2.定义三个重载方法max(),第一个方法求两个int值中的最大值,第二个方
法求两个double值中的最大值,第三个方法求三个double值中的最大值,
并分别调用三个方法。

package javaDay04;

import java.util.Scanner;

public class eventext2 {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入两个数");
        int a = input.nextInt();
        System.out.println("请输入两个数");
        int b = input.nextInt();
        System.out.println("请输入两个数");
        double c = input.nextDouble();
        System.out.println("请输入两个数");
        double d = input.nextDouble();
        System.out.println("请输入两个数");
        double e = input.nextDouble();
        max(a,b);
        max(c,d);
        max(c,d,e);
    }

    private static void max(int a,int b) {
        if(a>b){
            System.out.println("max:"+a);
        }else {
            System.out.println("max:"+b);
        }

    }
    private static void max(double c ,double d) {
        if(c>d){
            System.out.println("max:"+c);
        }else {
            System.out.println("max:"+d);
        }

    }
    private static void max(double c ,double d,double e) {
        if(c>d){
                System.out.println("max:"+c);
            if(c>e){
                System.out.println("max:"+c);
            }else{
                System.out.println("max:"+e);
            }
        }else {
            if(d>e){
                System.out.println("max"+d);
            }else{
                System.out.println("max"+e);
            }
        }
    }

}

3.以下代码的运行结果是什么?

public class Test1 {
	public static boolean foo(char c) {
		System.out.print(c);
		return true;
	}

	public static void main(String[] args) {
		int i = 0;
		for (foo('A'); foo('B') && (i < 2); foo('C')) {
			i++;// 1 2
			foo('D');
		}
	}
}

答案:ABDCBDCB