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