java第五次作业
上机练习
1.分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。(知识点:循环语句)
1 package explorer_002; 2 3 public class pratice_01 { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 System.out.println("for方法"); 8 int a=1; 9 int sum=0; 10 for(a=1;a<=100;a++) 11 { 12 if(a%3==0) 13 { 14 sum=sum+a; 15 } 16 } 17 System.out.println("1-100之间能被3整除的数总和为"+sum); 18 System.out.println("==========================================="); 19 20 System.out.println("while方法"); 21 22 a=1; 23 sum=0; 24 while(a<=100) 25 { 26 if(a%3==0) 27 { 28 sum=sum+a; 29 } 30 a++; 31 } 32 System.out.println("1-100之间能被3整除的数总和为"+sum); 33 System.out.println("============================================"); 34 35 System.out.println("do-while方法"); 36 37 a=1; 38 sum=0; 39 do 40 { 41 if(a%3==0) 42 { 43 sum=sum+a; 44 } 45 a++; 46 } 47 while(a<=100); 48 System.out.println("1-100之间能被3整除的数总和为"+sum); 49 50 } 51 52 }
2.输出0-9之间的数,但是不包括5。(知识点:条件、循环语句)
1 package explorer_002; 2 3 public class pratice_02 { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 int i=0; 8 for(i=1;i<=9;i++) 9 { 10 if(i!=5) 11 { 12 System.out.println(i); 13 } 14 } 15 } 16 17 }
3.编写一个程序,求整数n的阶乘,例如5的阶乘是1*2*3*4*5(知识点:循环语句)
1 package explorer_002; 2 3 import java.util.Scanner; 4 5 public class pratice_03 { 6 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 Scanner input=new Scanner(System.in); 10 System.out.println("请输入一个正整数n"); 11 int n=input.nextInt(); 12 System.out.println("正在为您计算他的阶乘总和"); 13 int i=0; 14 int f=1; 15 for(i=n;i>0;i--) 16 { 17 f=f*i; 18 } 19 System.out.println("他的阶乘总和为"+f); 20 } 21 22 }
4.编写一个程序,输入任意学生成绩,如果输入不合法(<0或者>100),提示输入错误,重新输入,直到输入合法程序结束(知识点:循环语句)
1 package explorer_002; 2 3 import java.util.Scanner; 4 5 public class pratice_cyc_unt_rig { 6 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 Scanner input=new Scanner(System.in); 10 System.out.println("请输入成绩(0-100)"); 11 int score=input.nextInt(); 12 if(score<=100&&score>=0) 13 { 14 System.out.println("输入成功成绩为"+score); 15 } 16 else 17 { 18 int i; 19 int sc=-1; 20 for(i=sc;i>100||i<0;) 21 { 22 System.out.println("成绩格式不正确,请从新输入"); 23 sc=input.nextInt(); 24 i=sc; 25 } 26 System.out.println("输入成功成绩为"+sc); 27 } 28 } 29 30 }
5.假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。(知识点:循环语句)
1 package explorer_002; 2 3 import java.util.Iterator; 4 5 public class pratice_05 { 6 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 double salary=30000; 10 System.out.println("正在为您计算10年后的年薪,以及未来10年(从今年算起)总收入"); 11 int year=10; 12 double sum=0; 13 for(year=10;year>0;year--) 14 { 15 sum=sum+salary; 16 salary=salary*0.06+salary; 17 } 18 System.out.println("10年后的年薪为"+(int)salary); 19 System.out.println("未来10年(从今年算起)总收入"+(int)sum); 20 } 21 22 }
作业
1.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
1 package explorer_001; 2 3 import java.util.Scanner; 4 5 public class work_01 { 6 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 Scanner input=new Scanner(System.in); 10 System.out.println("请输入一个三位数"); 11 int num=input.nextInt(); 12 if(num>=100&&num<=999) 13 { 14 int a=num/100; 15 int c=num%10; 16 int b=(num%100-c)/10; 17 int e=a*a*a+b*b*b+c*c*c; 18 if(e==num) 19 { 20 System.out.println(num+"是水仙花数"); 21 } 22 else 23 { 24 System.out.println(num+"不是水仙花数"); 25 } 26 } 27 else 28 { 29 do 30 { 31 System.out.println("数字输入错误请重新输入"); 32 int f=input.nextInt(); 33 num=f; 34 } 35 while(num<100||num>999); 36 int a=num/100; 37 int c=num%10; 38 int b=(num%100-c)/10; 39 int e=a*a*a+b*b*b+c*c*c; 40 if(e==num) 41 { 42 System.out.println(num+"是水仙花数"); 43 } 44 else 45 { 46 System.out.println(num+"不是水仙花数"); 47 } 48 } 49 } 50}
2.输入年月日,判断这是这一年中的第几天(知识点:循环语句、条件语句)
1 package explorer_001; 2 3 import java.util.Scanner; 4 5 public class work_02 { 6 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 Scanner input=new Scanner(System.in); 10 System.out.println("请输入一个年、月、日"); 11 int year=input.nextInt(); 12 int month=input.nextInt(); 13 int day=input.nextInt(); 14 int num=0; 15 int i=month-1; 16 if(year%400==0||year%100!=0&&year%4==0) { 17 for(i=month-1;i>0;i--) 18 { 19 if(i==1||1==3||i==5||i==7||i==8||i==10||1==12) 20 { 21 num=num+31; 22 } 23 else if(i==4||1==6||i==9||i==11) 24 { 25 num=num+30; 26 } 27 else if(i==2) 28 { 29 num=num+29; 30 } 31 else { 32 System.out.println("月份输入错误"); 33 } 34 } 35 System.out.println("这是这一年中的第"+(num+day)+"天"); 36 } 37 else { 38 for(i=month-1;i>0;i--) 39 { 40 if(i==1||1==3||i==5||i==7||i==8||i==10||1==12) 41 { 42 num=num+31; 43 } 44 else if(i==4||1==6||i==9||i==11) 45 { 46 num=num+30; 47 } 48 else if(i==2) 49 { 50 num=num+28; 51 } 52 else { 53 System.out.println("月份输入错误"); 54 } 55 } 56 System.out.println("这是这一年中的第"+(num+day)+"天"); 57 } 58 59 60 61 62 63 64 } 65 66 67 }
3.由控制台输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321(知识点:循环语句、条件语句)
package explorer_001; import java.util.Scanner; public class work_03 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); System.out.println("请输入一个四位数"); int num=input.nextInt(); int a=num/1000; int d=num%10; int c=(num%100-d)/10; int b=num/100-a*10; System.out.println("逆序数为"+d+c+b+a); } }