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\n"); break;

case 'w':

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

case 'f':

System.out.println("Friday\n"); 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\n");

else if (j == 'h')

System.out.println("Thursday\n");

else

System.out.println("error\n");

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\n");

else if (j == 'u')

System.out.println("Sunday\n");

else

System.out.println("error\n");

break;

default:

System.out.println("error\n");

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+"\t");

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+"\t");

count++;

if(count%3==0){

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

}

}

}

}

}

posted @ 2017-05-30 23:51  Nicepanda  阅读(308)  评论(0编辑  收藏  举报