/**
* 尚学堂第三章作业
* @author Su Tom
*
*/
/*
* 1选择题:(1)A (2)BD (3)A (4)BD (5)B
*
* 2简答题:(1)异:多选择结构与switch的关系:当布尔表达式是等值判断的情况,可使用多重选择结构或switch结构,
* 如果布尔表达式区间判断的情况,则只能使用多重选择结构
* 同:都是选择结构
* (2)break和continue作用:退出当前所在的循环体,其中break推出整个循环,而continue则推出本次循环,
* 本次下面的循环体不执行,继续前面循环,带有标签的break和continue可以退出到标签指定的地。
* (3)使用标签来用break跳出外层循环
*
* (4) 定义: 方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
* 作用:用相同方法名,不同的含义(形参类型、形参个数、形参顺序)来表达不同的方法
* 判断依据:看形参类型、形参个数、形参顺序是否相同
*
* (5)递归定义:,一个使用递归技术的方法将会直接或者间接的调用自己
* 优点:简单明了,易理解
* 缺点:占内存,;耗时间,耗资源
*
* 3.编码题:
*/
import java.util.Scanner;
public class Task {
public static void main(String[] args) {
//1. 从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。
System.out.println("请输入一个十进制整数:");
Task methods = new Task();
int temp1 = methods.decimalConvertBinal(1, 0); //临时存储返回值
System.out.println("二进制结果为:" + temp1);
//2. 编程求:∑1+∑2+……+∑100。
int temp2 = methods.totalNum(); //temp2存储返回值
System.out.println("∑1+∑2+……+∑100 = " + temp2);
//3.编写递归算法程序:一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求数列的第40位数是多少。
System.out.println("第40位数字是:" + methods.sequence(40));
}
/*
* 第一题方法
* 十进制转换为二进制方法
*/
int decimalConvertBinal(int i,int changeNum) { //changeNum为二进制数,此方法返回值为二进制
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
for(;;) {
if(num == 0) {
break;
}
else {
int remainNum = num % 2; //余数
num = num / 2; //以商作为被除数
changeNum += remainNum * i;
i = i * 10;
}
}
return changeNum;
}
/*
* 第二题方法
* 求和方法
*/
int totalNum() {
int sum = 0;
for(int j = 1;j <= 100;j++) {
for(int i = 1;i <= j;i++) {
sum += i;
}
}
return sum;
}
/*
* 第三题方法
* 数列递归方法
*/
int sequence(int num) {
if(num == 1 || num == 2) {
return 1;
}else {
return (sequence(num - 1) + sequence(num - 2));
}
}
}
尚学堂第三章作业
最新推荐文章于 2020-11-08 12:24:32 发布