1.2java基础之基本运算

java基础之基本运算

编程思想

初学者最难的点就在于思维的转变。用人脑的思维和逻辑试着和电脑相处, 试着让电脑听懂我们说话,明白我们的心意。这个过程就仿佛在对电脑说“你吃了吗?”,电脑回你“阿巴阿巴阿巴…”!既然电脑无法理解我们,那我们就试着去理解它呗。怎么理解?欢迎了解计算机编程语言,欢迎了解计算机编程思维。

  1. 穷举法
    在算法中, 穷举算法是最简单的一种算法,其依赖于计算机强大的计算能力,来穷举每一种可能的情况,以达到解决问题的目的穷举法基本思想是逐一列举问题所涉及的所有情形,并根据问题提出的条件检验哪些是问题的解,哪些应予排除
    比如经典的计算100以内素数的问题,我们下意识就能想到应该从2开始,计算除1和它本身是否还有其他因数,没有就是素数,有就是合数,然后再计算下一个。是不是一目了然,清清楚楚? 那好恭喜你,这就是穷举法!
    再比如经典的鸡兔同笼问题,鸡兔共35只,有脚94只。是不是下意识就要列二元一次方程组求解了?
x + y = 35
2x+4y = 94
解之得:
x=23
y=12

没错,方程列的漂亮,解得也很漂亮! 那你去给电脑说,让他理解理解?
从电脑角度看这个问题,会怎么样呢?就宛如还没学会方程的小学生
假如鸡有1只,那兔有34只,共138只脚,不符合,继续;
假如鸡有2只,那兔有33只,共136只脚,不符合,继续;
假如鸡有3只,那兔有32只,共134只脚,不符合,继续;

假如鸡有23只,那兔有12只,共94只脚,符合,成功!
如果还是没有理解,那也无需担心,三分理论七分实践,我们接着练!

变量

  • 什么是变量?
    变量就是可变的量;常量就是不可变的量。
    怎么理解呢? 就仿佛是一个盒子,这个盒子本身没有任何东西,它只代表它可以容纳某种类型的数据,放一只猫进去,它就等于这只猫,放一只狗进去,它就等于这只狗!

  • 变量的命名
    1.首字母是英文字母、$或下划线,有字母、数字、下划线组成
    2.变量的命名遵循见名知意的原则
    3.java变量名建议不用中文
    4.变量名首字母建议不用大写字母
    5.用驼峰命名法命名多个单词组成的变量名 例如:sumScore

  • 变量的定义
    每个变量必须属于一种数据类型
    类型 变量;比如:int age;String name;

  • int和string
    int:整型变量,属于基本类型,最小值是 -2,147,483,648(-2^31),最大值是 2,147,483,647(2^31 - 1),默认值是0;
    string:创建和操作字符串,属于对象,默认值为null

  • 变量的初始化
    先赋值 用 = 运算符 将=右边的值、运算的结果、变量赋值给左边的变量
    比如:int age = 18; int sum = 1 + 1;int sum = sum + 1;

  • 运算符
    算术运算符:+、-、*、/、++、–
    关系运算符:==、>、<、>=、<=、!=
    位运算符:&、|、^、〜、
    逻辑运算符:&&、| |、!
    赋值运算符:=

循环结构

  • while 循环
while( 布尔表达式 ) {
  //循环内容
}
  • do…while 循环
do {
       //代码语句
}while(布尔表达式);
  • for 循环
for(初始化; 布尔表达式; 更新) {
    //代码语句
}

关于 for 循环有以下几点说明:

最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量。
再次检测布尔表达式。循环执行上面的过程。

实战

枯燥的纸上谈兵终于结束,我写的都瞌睡了,下面开始实战!

  1. 判断101-200之间有多少个素数,并输出所有素数。
    public static void main(String[] args) {
        /**
         * 判断101-200之间有多少个素数,并输出所有素数。
         */
        int j;
        for(int i=101;i<200;i++){
            for(j=2;j<=i/2;j++){
                if(i%j==0){
                    break;
                }
            }
            if(j>i/2){
                System.out.println(i+"是素数!");
            }
        }
    }
  1. 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
    public static void main(String[] args) {
        /**
         * 水仙花数
         */
        int i = 0, j = 0, k = 0;
        for (int num = 100; num <= 999; num++) {
            i = num / 100;
            j = (num % 100) / 10;
            k = num % 10;
            if (num == i * i * i + j * j * j + k * k * k) {
                System.out.println(num + "是水仙花数!");
            }
        }
    }
153是水仙花数!
370是水仙花数!
371是水仙花数!
407是水仙花数!
  1. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
    public static void main(String[] args) {
        /**
         * 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程   找出1000以内的所有完数。
         */
        int s;
        for (int i = 1; i <= 1000; i++) {
            s = 0;
            for (int j = 1; j < i; j++) {
                if (i % j == 0) {
                    s = s + j;
                }
            }
            if (s == i) {
                System.out.println(i + " ");
            }
        }
    }
6 
28 
496 
  1. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
    public static void main(String[] args) {
        double s=0;
        double t=100;
        for(int i=1;i<=10;i++)
        {
            s+=t;
            t=t/2;
        }
        System.out.println(s);
        System.out.println(t);
    }
199.8046875
0.09765625
  1. 输出9*9口诀。
    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        for (i = 1; i <= 9; i++) {
            for (j = 1; j <= 9; j++) {
                if (j > i) {
                    continue;
                }
                System.out.print(j + "*" + i + "=" + i * j + "\t");
            }
            System.out.println();
        }
    }
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值