3 小游戏: 猜数字
输入整数n(0<n<100), 想让程序猜到的值
如果程序没有猜中, 则提示太大/太小 并让程序接着猜测
程序通过二分法不断缩小猜测范围, 直到猜中n
例如n = 39
程序第一次猜测50, 判断数值太大
第二次猜测25, 判断数值太小
第三次猜测37 判断数值太小
43 大
40 大
38 小
39 正确
输入: n 表示被猜测值
输出: 每行输出一个整数, 表示程序当前猜测的数字
最终行输出猜测的次数
样例输入:
39
样例输出:
50
25
37
43
40
38
39
最终猜测了7次
package package01;
import java.util.Scanner;
/**
* @author abner
* @version 1.0
*/
public class practise4_3 {
public static void main(String[] args) {
int n;
int count = 0, max = 100, min = 0;
int mid;
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
do{
count++;
mid = (max + min) / 2;
if (mid > n) {
max = mid - 1;
}
else if (mid < n) {
min = mid + 1;
}
System.out.println(mid);
} while (mid != n);
System.out.println("最终猜测了"+count+"次");
}
}
静态方法:@staticmethod
静态方法是定义在类的内部的函数,此函数的作用域是函数的内部
* 说明:
静态方法需要使用@staticmethod 装饰器定义
静态方法与普通函数定义相同, 不需要传入参数self实例参数和cls类参数
静态方法只能凭借该类或类创建的对象(实例)调用
静态方法不能访问类变量和实例变量
* 实质:
就是定义在类内的函数。类名.函数() 或 实例名.函数()
仅仅作为一个算法用
不操作类属性,也不操作实例属性
* 存在的意义就是:将一类函数归结在一起。
* 示例:
# 此示例示意静态方法是定义和使用
class A:
@staticmethod
def myadd(a, b):
return a + b
print(A.myadd(100, 200)) # 300
a = A()
print(a.myadd(300, 400)) # 700