20170803 - 今日技能封装 - A

1 如何生成0-0.99999的随机小数?使用其生成0-1000的随机数需注意什么?

Math.random(),生成后*1000,再强转。(int强转会抹掉小数位)

 

2 while的语法是?

while(循环条件){

 

}

 

3 如何跳出while循环?

break;

 

4 循环三要素有哪些?

初始化循环变量;循环的条件;变量的变化方式。

 

5 循环的关键在于?三要素的关键在于?循环10次,每次变量a加1,结果与循环变量是什么?

在于循环三要素,三要素理清后,选择什么架构都可以,只是语法上的不同而已。

在于找到真正的循环变量。

循环变量是次数,结果是a

 

5.5 累加1-100的是?

每次的累加和而不是1,2,3

 

6 循环结构有?区别是?如何选择?

do...while;while;for;

while:先判断,后执行

do...while:先执行,后判断

//

初始化循环变量及变化相同则适合do...while

固定次数相同的情况适合for

先看次数,再看变化。

 

7 Java中else..if分支结构,可以省略else吗?

可以

 

8 Java中定义了类型后后续还可以改变吗?

不可以,除非重新定义并强转

 

9 下例输出的是浮点数还是整型?

double num = Math.random();

num *= 1000;

num = (int)(num+1);

 

浮点数。

 

10 do...while结构内do部分为什么?

相当于将第一要素及第三要素同时定义,因此适用于第一要素及第三要素相同的情况。

 

11 循环中的循环体是什么?

除变量变化以外的循环代码块

 

12 do..while的语法是?

do{

初始化循环变量(变量变化的方式)

循环体

}while(循环的条件);

 

13 for循环的语法是?

for(初始化变量;循环条件;循环变量变化的方式){

循环体

}

 

14 for循环中,三要素如何设置多条件?

(i = 6,j = 1;i < 2 && j == 2;i += 1,j += 2)

 

15 如何跳出当前循环?如何调出整个循环?

continue,break

 

16 如何优化代码量?

可以用if的用if,再不行用三目,再不行用else if.

 

17 升序算法是?a,b,c,d如何排序?

关键点:比大小,大则交换数值,从而保证比较数值为最大.

方法为,

a与b比,a与c比,a与d比,

b与c比,b与d比,

c与d比,

 

交换算法:设置中转变量t

t=a;

a=b;

b=t;

 

18 for循环中定义的变量是什么变量?如果是局部变量,如何使其的值能够传递出来?

局部变量,在外部先定义并赋值(必须,因为有可能不进入for循环,不赋值在使用时会报错),使其变成全局变量.

 

19 如何生成0-99的随机数?

int a = (int)(Math.random() * 100)

int强转,会直接去掉小数位.

 

21 编写算法的技巧:for循环,结果与上次相关的,如何编写算法?

找到真正的变量.

 

有数列为:9,99,999,...,9999999999。要求使用程序计算此数列的和

显然,计算10次,每次用上次的值加本次的值,如第三次,则为999

 

 

设计算法时,卡在了计算本次的值上,由于限定了不可用幂方函数,只能从该次值与上次值关系入手.

9

99

999

显然

9 = 10 - 1

99 = 100 - 1

999 = 1000 - 1

再理清思路,可见1为常量(变量不用理会,要找的是变量和变量的关系),而左边的值又为结果,因此要找出的关系的两个变量便是上一次值与10,100,1000

 

于是易得出,

方式1,

除第一次外,本次值 = (上一次总和+1) * 10 - 1,

本次总和 = 本次值 + 上和

 

方式2,

本次值 = 10 乘以 当此次数 - 1;

 

理清思路理清思路理清思路

 

//关键步骤,需要想到可以用上一步骤得到的结果用来交互得出该步所需变量,而不是想着直接10乘以该次的幂方

 

package Day04;

 

public class addition9 {

 

public static void main(String[] args) {

 

//for循环10次

//循环变量是次数

//变体是10的乘等

long ten = 10;

long result = 0;

int num = 0;

long value = 0;

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

//每次乘等于10,每次ten的值都比上一轮大一个级别

value = ten - 1;

System.out.println(ten);

ten = ten * 10;//关键步骤,需要想到可以用上一步骤得到的结果用来交互得出该步所需变量,而不是想着直接10乘以该次的mi'fang

result = value + result;

}

System.out.println(result);

 

}

 

}

 

 

public class SumOfSeq {

    public static void main(String[] args) {

        // 数列求和

        long nine = 9;

        long result = nine;

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

            nine = nine * 10 + 9;

            result += nine;

        }

        System.out.println("9+99+999+...+9999999999=" + result);

    }

}

1 如何生成0-0.99999的随机小数?使用其生成0-1000的随机数需注意什么?
  Math.random(),生成后*1000,再强转。(int强转会抹掉小数位)
   
  2 while的语法是?
  while(循环条件){
   
  }
   
  3 如何跳出while循环?
  break;
   
  4 循环三要素有哪些?
  初始化循环变量;循环的条件;变量的变化方式。
   
  5 循环的关键在于?三要素的关键在于?循环10次,每次变量a加1,结果与循环变量是什么?
  在于循环三要素,三要素理清后,选择什么架构都可以,只是语法上的不同而已。
  在于找到真正的循环变量。
  循环变量是次数,结果是a
   
  5.5 累加1-100的是?
  每次的累加和而不是1,2,3
   
  6 循环结构有?区别是?如何选择?
  do...while;while;for;
  while:先判断,后执行
  do...while:先执行,后判断
  //
  初始化循环变量及变化相同则适合do...while
  固定次数相同的情况适合for
  先看次数,再看变化。
   
  7 Java中else..if分支结构,可以省略else吗?
  可以
   
  8 Java中定义了类型后后续还可以改变吗?
  不可以,除非重新定义并强转
   
  9 下例输出的是浮点数还是整型?
  double num = Math.random();
  num *= 1000;
  num = (int)(num+1);
   
  浮点数。
   
  10 do...while结构内do部分为什么?
  相当于将第一要素及第三要素同时定义,因此适用于第一要素及第三要素相同的情况。
   
  11 循环中的循环体是什么?
  除变量变化以外的循环代码块
   
  12 do..while的语法是?
  do{
  初始化循环变量(变量变化的方式)
  循环体
  }while(循环的条件);
   
  13 for循环的语法是?
  for(初始化变量;循环条件;循环变量变化的方式){
  循环体
  }
   
  14 for循环中,三要素如何设置多条件?
  (i = 6,j = 1;i < 2 && j == 2;i += 1,j += 2)
   
  15 如何跳出当前循环?如何调出整个循环?
  continue,break
   
  16 如何优化代码量?
  可以用if的用if,再不行用三目,再不行用else if.
   
  17 升序算法是?a,b,c,d如何排序?
  关键点:比大小,大则交换数值,从而保证比较数值为最大.
  方法为,
  a与b比,a与c比,a与d比,
  b与c比,b与d比,
  c与d比,
   
  交换算法:设置中转变量t
  t=a;
  a=b;
  b=t;
   
  18 for循环中定义的变量是什么变量?如果是局部变量,如何使其的值能够传递出来?
  局部变量,在外部先定义并赋值(必须,因为有可能不进入for循环,不赋值在使用时会报错),使其变成全局变量.
   
  华为
   
  19 如何生成0-99的随机数?
  int a = (int)(Math.random() * 100)
  int强转,会直接去掉小数位.
   
  20 死叉
   
  21 编写算法的技巧:for循环,结果与上次相关的,如何编写算法?
  找到真正的变量.
   
  有数列为:9,99,999,...,9999999999。要求使用程序计算此数列的和
  显然,计算10次,每次用上次的值加本次的值,如第三次,则为999
   
   
  设计算法时,卡在了计算本次的值上,由于限定了不可用幂方函数,只能从该次值与上次值关系入手.
  9
  99
  999
  显然
  9 = 10 - 1
  99 = 100 - 1
  999 = 1000 - 1
  再理清思路,可见1为常量(变量不用理会,要找的是变量和变量的关系),而左边的值又为结果,因此要找出的关系的两个变量便是上一次值与10,100,1000
   
  于是易得出,
  方式1,
  除第一次外,本次值 = (上一次总和+1) * 10 - 1,
  本次总和 = 本次值 + 上和
   
  方式2,
  本次值 = 10 乘以 当此次数 - 1;
   
  理清思路理清思路理清思路
   
  //关键步骤,需要想到可以用上一步骤得到的结果用来交互得出该步所需变量,而不是想着直接10乘以该次的幂方
   
  package Day04;
   
  public class addition9 {
   
  public static void main(String[] args) {
   
  //for循环10次
  //循环变量是次数
  //变体是10的乘等
  long ten = 10;
  long result = 0;
  int num = 0;
  long value = 0;
  for(int times = 1;times <= 10;times++){
  //每次乘等于10,每次ten的值都比上一轮大一个级别
  value = ten - 1;
  System.out.println(ten);
  ten = ten * 10;//关键步骤,需要想到可以用上一步骤得到的结果用来交互得出该步所需变量,而不是想着直接10乘以该次的mi'fang
  result = value + result;
  }
  System.out.println(result);
   
  }
   
  }
   
   
  public class SumOfSeq {
      public static void main(String[] args) {
          // 数列求和
          long nine = 9;
          long result = nine;
          for (int i = 2; i <= 10; i++) {
              nine = nine * 10 + 9;
              result += nine;
          }
          System.out.println("9+99+999+...+9999999999=" + result);
      }
  }
posted @ 2017-08-03 23:51  清及  阅读(143)  评论(0编辑  收藏  举报