第一天
记事本编写,练习基本功
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);
}
}
第二天
- 源文件名是否必须与类名相同?如果不是,那么什么情况下,必须相同?
源文件名不是必须和类名相同,只有此类为公共类时即由public修饰的类时才必须相同 - 程序中若只有一个public修饰的类,且此类含main方法。那么类名与源文件名可否不一致?
不可以,public修饰的类的类名必须与文件名保持一致,并且每个文件中只能有一个public修饰的类 - 为什么要设置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(" * ");
}
}
第三天
- 键盘接收用户输入的注意点
- 在代码最前面导入包,import java.util.Scanner;
- 创建一个Scanner对象,Scanner input=new Scanner(System.in); 一个方法只需编写一次创建Scanner对象
- 输出一个提醒语言,System.out.println(“输入一个”);
- 键盘的接收,int a= input.nextInt();回车键就代表数字输入完成,并把输入的值赋值给左侧变量a
- 从键盘接收字符串类型时,用nextString(),还是next()
用next(),nextInt()是接收整数类型,nextDouble()是接收小数类型
- 设计一个程序,实现任意两个整数之和
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);
}
}
- 依据如下程序推演出结果
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