zoukankan      html  css  js  c++  java
  • 3.1分支结构与循环语句作业解析

    作业1:实现个人所得税的计算器。

    应纳税所得额 = 税前工资收入金额 - 起征点(3500元)

    应纳税额 = 应纳税所得额 x 税率 - 速算扣除数

    import java.util.Scanner;

    public class Homework1{

    public static void main(String[] args){

    Scanner input = new Scanner(System.in);

    System.out.println("请输入您的税前工资:");

    double salary = input.nextDouble();

    double taxSalary = salary-3500;//应缴税的工资部分:税前工资-起征税额。

    double tax=0;//应缴纳的税额

    if(taxSalary>0&&taxSalary<=1500){

     tax =taxSalary*0.03;

    }else if(taxSalary>1500&&taxSalary<=4500){

     tax =taxSalary*0.1-105;

    }else if(taxSalary>4500&&taxSalary<=9000){

     tax =taxSalary*0.2-555;

    }else if(taxSalary>9000&&taxSalary<=35000){

     tax =taxSalary*0.25-1005;

    }else if(taxSalary>35000&&taxSalary<=55000){

     tax =taxSalary*0.3-2755;

    }else if(taxSalary>55000&&taxSalary<=80000){

     tax =taxSalary*0.35-5505;

    }else if(taxSalary>80000){

     tax =taxSalary*0.45-13505;

    }

    System.out.println("税前工资为:"+salary);

    System.out.println("应缴个税:"+tax);

    System.out.println("税后工资:"+(salary-tax));

    }

    }

    作业2:输入一个数,判断是奇数还是偶数

    import java.util.Scanner;

    public class homework2{

    public static void main(String[] args){

    Scanner aaa = new Scanner(System.in);

    System.out.println("请输入一个整数:");

    int num =aaa.nextInt();

    if(num%2==0){

    System.out.println(num+"为偶数!");

    }else{

    System.out.println(num+"为奇数!");

    }

    }

    }

    作业3:判断一个数是否是素数。

    素数:只能被1和自身整除的数。 1不是素数

    分析:1.获取用户输入的数字n

     2.利用n除以[2,n-1],如果存在整除的数,n不是素数

     

    public class homework3{

    public static void main(String[] args) {

    // 输入一个数

    Scanner input = new Scanner(System.in);

    System.out.println("请输入一个数:");

    int n = input.nextInt();

    boolean flag = true;// 判断是否是素数

    if (n == 1)

    flag = false;

    else {

    for (int i = 2; i < n; i++) {

    if (n % i== 0) {

    flag = false;

    break;

    }

    }

    }

    // 输出结果

    if (flag) {

    System.out.println(n + "是素数");

    } else {

    System.out.println(n + "不是素数");

    }

    }

    }

    ②  

    import java.util.Scanner;

    public class homework3{

    public static void main(String[] args){

    Scanner input = new Scanner(System.in);

    System.out.println("请输入一个数:");

    int n = input.nextInt();

    if(n==1){

    System.out.println(n+"不是素数");

    return;

    }

    for(int i=2;i<=n-1;i++){

    if(n%i==0){

    System.out.println(n+"不是素数");

    return;

    }

    }

    System.out.println(n+"是素数");

    }

    }

    作业4:从键盘输入一个班5个学生的分数,求和并输出。

    public class homework4{

    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    //输入总分并求和

    double sum = 0;

    for (int i = 0; i < 5; i++) {

    System.out.println("请输入第"+(i+1)+"个学生的成绩");

    double  d = input.nextDouble();

    sum += d;

    }

    //输出总分

    System.out.println("总分是"+sum);

    }

    }

    作业5:从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。

     分析:

     将十进制转换二进制的算法:除以2取余数,直到商为0时,将余数倒序排列。

     比如: 13 除以2  商:6   余数:1

       6  除以2  商:3   余数:0

       3  除以2  商:1   余数:1

       1  除以2  商:0   余数:1

    ===>1101

     循环条件:商为0

     循环体:用商除以2,求余

    public class homework5{

    public static void main(String [] args){

    //给出一个十进制数

    int num2 =6;

    //转换

    int num = num2;

    String str="";

    do{

    int div = num/2;//除以2得到商

    int mod = num%2;//得到余数作为二进制位

    str = mod + str;

    num = div;//商作为被除数

    }while(num!=0);//被除数不是零

    System.out.println(num2+"------>"+str); //输出二进制数

    }

    }

    作业6:请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”。

    public class homework6{

    public static void main(String[] args) {

    char i, j;

    System.out.println("please enter the first letter:");

    Scanner input = new Scanner(System.in);

    String str = "";

    str = input.next().toLowerCase();

    // 转换成字符串

    i = str.charAt(0);

    switch (i) {

    case 'm':

    System.out.println("Monday "); break;

    case 'w':

    System.out.println("Wednesday ");break;

    case 'f':

    System.out.println("Friday "); break;

    case 't':

    System.out.println("please enter the next letter:");

    str = input.next().toLowerCase();

    j = str.charAt(0);

    if (j == 'u')

    System.out.println("Tuesday ");

    else if (j == 'h')

    System.out.println("Thursday ");

    else

    System.out.println("error ");

    break;

    case 's':

    System.out.println("please enter the next letter:");

    // 转换成字符串

    str = input.next().toLowerCase();

    j = str.charAt(0);

    if (j == 'a')

    System.out.println("Saturday ");

    else if (j == 'u')

    System.out.println("Sunday ");

    else

    System.out.println("error ");

    break;

    default:

    System.out.println("error ");

    break;

    }

    }

    }

    作业7:20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。

    分析:

    20元钱  3元/瓶

    第一次购买: 6瓶  余2元

    8元  3元/瓶

    第二次购买: 2瓶  余2元

    4元  3元/瓶

    第三次购买: 1瓶  余1元

    2元  3元/瓶 :剩余的总钱数小于可乐的价格,无法购买  

    public class Homework7{

    public static void main(String[] args){

    int money=20,price=3;

    int temp;//每次购买的瓶数

    int change;//购买可乐之后的找零

    int sum=0;//能购买的总瓶数

    while(money>=price){

    temp = money/price;//计算能购买的瓶数

    change = money%price;//找零

    sum+=temp;//计算总瓶数

    money = change+temp;

    }

    System.out.println("共能购买"+sum+"瓶可乐!");

     

    }

    }

    作业8:编程求:1!+2!+……+10!

    4!=4*3*2*1

    分析:1.获取1到10之间每一个数字的阶乘

         2.累加

    执行过程:

    i=1;

      f=1*1;//1的阶乘

      sum=0+1;//sum保存1!

    i=2

      f=2*1;//2*1!==>2的阶乘

      sum=1+2;//sum保存1!和2!之和

    i=3

      f=3*2*1;3*2!==>3的阶乘

      sum=1+2+6;//sum保存1!,2!和3!之和

    ....

    public class homework8{

    public static void main(String[] args){

    int sum=0;//计算阶乘之和

    int f=1;

    for(int i=1;i<=10;i++){

    f = f*i;

    sum+=f;

    }

    System.out.println(sum);

    }

    }

    作业9:while和for循环输出1-1000之间能被5整除的数,且每行输出3个。

    public class homework9{

    public static void main(String[] args){

    /*

    方法1:使用while循环实现

    int i=1;

    int count=0;

    while(i<=1000){

    if(i%5==0){

    System.out.print(i+" ");

    count++;

    if(count%3==0){

    System.out.println();//换行

    }

    }

    i++;

    }

    */

    //方法2:用for循环

    int count=0;

    for(int i=1;i<=1000;i++){

    if(i%5==0){

    System.out.print(i+" ");

    count++;

    if(count%3==0){

    System.out.println();//换行

    }

    }

    }

    }

    }

  • 相关阅读:
    js验证邮箱
    输出一个金字塔
    仿QQ聊天软件2.0版
    zoj 3662 第37届ACM/ICPC长春赛区H题(DP)
    zoj 3659 第37届ACM/ICPC 长春赛区现场赛E题 (并查集)
    zoj 3640 概率dp
    hdu 5203 && BC Round #37 1002
    poj 3071 概率dp
    poj 2151 概率dp
    zoj 3460 二分+二分图匹配
  • 原文地址:https://www.cnblogs.com/nicepanda/p/6921892.html
Copyright © 2011-2022 走看看