- 输入两个数的找最大公约数
Scanner sc = new Scanner(System.in);
System.out.println("请输入两个数");
int a, b;
while (true) {
a = sc.nextInt();
if (a > 1) {
break;
} else {
System.out.println("输入不合法!");
}
b = sc.nextInt();
}
while (true) {
b = sc.nextInt();
if (b > 1) {
break;
} else {
System.out.println("输入不合法!");
}
}
int min = Math.min(a, b);
int num = 0;
for (int i = 2; i <= min; i++) {
if (a % i == 0 && b % i == 0) {
num = i;
System.out.println("最大公约数为" + num);
}
}
if (num == 0) {
System.out.println("他两互质");
}
sc.close();
- 1000以内的完数
int num = 0;
for (int j = 1; j <= 1000; j++) {
num = 0;
for (int i = 1; i <= j / 2; i++) {
if (j % i == 0) {
num += i;
}
}
if (num == j) {
System.out.println(j);
}
}
二、自定义方法
方法的概念:
- Java方法类似于其它编程语言里面的函数,是一段可以重复调用的代码
方法的作用:
- 简化代码,提高代码的可读性,可维护性,可重用性,安全性
语法格式:
-
修饰符 public static
-
返回值类型:用于限定调用方法值的数据类型。
-
返回值:被return语句返回的值,该值会返回给调用者。
return关键字用于结束方法以及返回方法指定类型的值。
-
参数名:是一个变量,用于接收调用方法指定类型的值。
方法的调用:
- 实参和形参的类型必须一一对应,另外个数也要一一对应。
- 函数返回值小转大–>自动类型转换
- 函数实参小转大–>自动类型转换
特殊关键字:
- break 用来终止switch或者离它最近的循环
- continue用来终止本次循环,进入下次循环
- return 用来终止它所在的一个方法的执行,返回调用处
- System.exit(0) 用来结束程序运行
Java语言中的方法Method在其他语言当中也可能被称为函数Function。对于一些复杂的代码逻辑,如果 希望重复使用这些代码,并且做到随时任意使用,那么就可以将这些代码放在一个大括号{}当中,并且 起一个名字。使用代码的时候,直接找到名字调用即可。
- 程序开始执行的时候是先执行main方法。因为main方法是一个入口。
- 在java语言中所有的方法体中的代码都必须遵循自上而下的顺序依次逐行执行。
- main方法不需要程序员手动调用,是由JVM调用的。但是除了main方法之外其他的方法,都需要 程序员手动调用。
- 方法只有调用的时候才会执行,方法不调用是不会执行的
- 方法定义在类体当中。方法定义的先后顺序没有关系
- 方法中的变量都属于局部变量。方法结束之后,局部变量占用的内存会自动释放。
练习
- 阶乘
public static void main(String[] args) {
long res = jieCheng(5);
System.out.println(res);
}
public static long jieCheng(int k) {
if (k == 1)
return 1;
return k * jieCheng(k - 1);
}
- 上台阶
public static void main(String[] args) {
// 上台阶问题
int res = method(30);
System.out.println(res);
}
public static int method(int n) {
if (n == 1) {
return 1;
}
if (n == 2) {
return 2;
}
return method(n - 1) + method(n - 2);
}
- 斐波那契数列,兔子序列
public static void main(String[] args) {
long res = method(10);
System.out.println(res);
}
public static int method(int n) {
if (n == 1) {
return 1;
}
if (n == 2) {
return 1;
}
return method(n - 1) + method(n - 2);
}
- 汗诺塔
public static void main(String[] args) {
double res = method(63);
System.out.println(res);
}
public static double method(int n) {
if (n == 1)
return 1;
return 2 * method(n - 1) + 1;
}
暑期编程PK赛
得CSDN机械键盘等精美礼品!


