第五周上机练习+作业
上机练习
1.分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。(知识点:循环语句)
package Test; public class h1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i=1; int sum=0; while (i<=100) { if(i%3==0) sum+=i; i++; }System.out.println(sum); } }
2.输出0-9之间的数,但是不包括5。(知识点:条件、循环语句)
package Test; public class h2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i=0; while (i<=9) { if(i!=5) System.out.println(i); i++; } } }
3.编写一个程序,求整数n的阶乘,例如5的阶乘是1*2*3*4*5(知识点:循环语句)
package Test; import java.util.Scanner; public class h3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); System.out.println("请输入一个数n"); int n=input.nextInt(); int sum=1; int i=1; while (i<=n) { sum*=i; i++; }System.out.println(sum); } }
4.编写一个程序,输入任意学生成绩,如果输入不合法(<0或者>100),提示输入错误,重新输入,直到输入合法程序结束(知识点:循环语句)
package test2; import java.util.Scanner; public class h1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); int i; for(i=0;;i++){ System.out.println("请输入学生的成绩:"); double x=input.nextDouble(); if(x<0||x>100){ System.out.println("输入的成绩不合法!"); }else{ System.out.println("该学生的成绩为:"+x); break; } } } }
5.假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。(知识点:循环语句)
package test2; public class h5 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i; double sum=0; double x=30000; for(i=1;i<=10;i++){ x+=x*0.06; sum+=x; } System.out.println("该员工10年后的年薪是:"+x); System.out.println("该员工未来10年的总收入是:"+sum); } }
作业
1.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次
package test2; public class hw1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("三位数中所有的水仙花数为:"); for (int i = 100; i < 1000; i++) { int a = i / 100; int b = (i % 100) / 10; int c = i % 10; if (i == (a * a * a + b * b * b + c * c * c)) { System.out.println(i); } } } }
2.输入年月日,判断这是这一年中的第几天(知识点:循环语句、条件语句)
package test2; import java.util.Scanner; public class hw2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("年"); int year = input.nextInt(); System.out.println("月"); int month = input.nextInt(); System.out.println("日"); int day = input.nextInt(); int a = 0; for (int i = 1; i < month; i++) { switch (i) { case 4: case 6: case 9: case 11: a += 30; break; case 2: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) a += 29; else a += 28; break; default: a += 31; break; } } a += day; System.out.println("这天是" + year + "的第" + a + "天"); } }
3.由控制台输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321(知识点:循环语句、条件语句)
package test2; import java.util.Scanner; public class hw3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("请输入一个四位整数"); int i = input.nextInt(); if (i >= 10000 || i < 1000) { System.out.println("输入有误!"); } else { int a = i / 1000; int b = i % 1000 / 100; int c = i % 100 / 10; int d = i % 10; System.out.print("原来的数为:" + i + " " + "反转后为:" + d + c + b + a); } } }