1.井里有一只蜗牛,他白天往上爬5米,晚上掉3.5米,井深56.7米,计算蜗牛需要多少天才能从井里出来?
我先说一下我自己错误的原因,我当时看了题之后感觉很简单就没仔细审题,我只简单的计算了每天爬5米,掉3.5米所以相当于每天爬1.5米。
以下是我当时写的代码(错误):
double a=0; int time=0; while(a<56.7){ a+=1.5; time++; } System.out.println(time);
这个都很简单兄弟们都能看懂 我错就错在没考虑到没判断蜗牛白天爬了之后有没有爬出去单纯以为每天只上升1.5米。这道题正确的思路就是在每天蜗牛白天爬了之后就判断是否爬出去了,正确代码如下:
double hei=0; int time=0; for (int i = 0; i <56 ; i++) { hei+=5; time++; if(hei>56.7){ System.out.println(time); break; } hei-=3.5; }
正确答案是36天,在这些简单的代码中需要注意的一点是在对每天爬多少的变量定义时要将其定义为double类型,因为会与浮点数类型的3.5进行计算不定义为double会计算错误。
2.键盘输入一个大于等于2的整数x,计算并打印x的平方根是多少?
这道题我当时准备用math.sqrt()方法解决,但是我忘了这个方法的代码所以这道题也错了。给大家看一下我当时写的代码加上正确代码:
Scanner sc = new Scanner(System.in); int sum =sc.nextInt(); if(sum>=2){ System.out.println(Math.sqrt(sum)); }
虽然这个代码是正确的,但是在经过老师的提示后我重写了一个既简单明了,又符合我们学过的知识。math.sqrt()我们还没学过。利用了乘法的思想,一个数的平方是a则称a的平凡跟为那个数。
Scanner a = new Scanner(System.in); System.out.println("请输入一个数"); double b= a.nextInt(); double c=0; for (double i = 0; i <=b ; i+=0.1) { if(i*i==b){ System.out.printf("%.2f",i); break; }else if(i*i>b){ c=i-0.1; System.out.printf("%.2f",c); break; } }
这个可以称为升级版代码,在这段代码中我把0和1都算进去了,然后将所有的平方根取到小数点后两位。
通过这次考试我得出了结论是不能太过轻敌,不要因为题目简单就不仔细审题。