- 1.Java的main方法一定是写在类中的
2.类名的命名
(1)一定是大驼峰的命名方式;[eg: TestDemo ]
(2)类名一定要与文件名相同,前提是这个类是一个public类 - 有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字
public class Main {
public static int findNum(int[] array) {
int ret = 0;
for (int i = 0; i < array.length; i++) {
ret ^= array[i];
}
return ret;
}
public static void main(String[] args) {
int[] array = {1,1,2,3,3,4,4,5,5};
System.out.println(findNum(array));
}
}
- 求斐波那契数列的第n项。(迭代实现)
public static int fib(int n) {
if (n == 1 || n == 2) {
return n;
}
int i = 1, j = 1, sum = 0;
for (int m = 3; m <= n; m++) {
sum = i + j;
i = j;
j = sum;
}
return sum;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int ret = fib(n);
System.out.println(ret);
}
- 求1!+2!+3!+4!+…+n!的和
package com.company;
import java.util.Scanner;
public class Main {public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int add = facadd(n);
System.out.println(add);
}
public static int facadd(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
int ret = 1;
for (int j = 1; j <= i; j++) {
ret *= j;
}
sum += ret;
}
return sum;
}
}
- 求 N 的阶乘
package com.company;
import java.util.Scanner;
public class Main {public static void main(String []args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int i = 1;
int sum = 1;
while(i<=n){
sum = sum*i;
i++;
}
System.out.println(sum);
}
}
- 调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序
package com.company;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int []arr={1,2,3,4,5,6,7,8,9,10};
int i;
int j;
for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if(arr[j]%2!=0){
int tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
}
System.out.print(arr[i]+" ");
}
}
}
- 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算
package com.company;
import java.util.Scanner;
public class Main{public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double a=sc.nextDouble();
double b=sc.nextDouble();
double c=sc.nextDouble();
double max=Max3(a, b,c);
System.out.println(max);
}
public static double Max2(double a,double b) {
double max2;
if(a>b){
max2=a;
}
else{
max2=b;
}
return max2;
}
public static double Max3(double a,double b,double c){
double max3;
double max2=Max2(a,b);
if(max2>c){
max3=max2;
}else{
max3=c;
}
return max3;
}
}
- 在同一个类中定义多个方法:要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println("两个整数中最大的是:"+max(a,b));
double i = scan.nextDouble();
double j = scan.nextDouble();
System.out.println("两个小数中最大的是:"+max(i,j));
double x = scan.nextDouble();
double y = scan.nextDouble();
int k = scan.nextInt();
System.out.println("两个小数和一个整数中最大的是:"+max(i,j,k));
}
public static int max(int a,int b) {
return a>b?a:b;
}
public static double max(double i,double j) {
return i>j?i:j;
}
public static double max (double i,double j,int k) {
return max(max(i,j),k);
}
- 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果
package com.company;
import java.util.Scanner;
public class Main {public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println("两个整数的和是"+add(a,b));
double i = scan.nextDouble();
double j = scan.nextDouble();
double k = scan.nextDouble();
System.out.println("三个小数的和是"+add(i,j,k));
}
public static int add(int a,int b) {
return a+b;
}
public static double add(double i,double j,double k) {
return i+j+k;
}
}
- 递归求斐波那契数列的第 N 项
public static int fib(int n) {
if (n == 1 || n==2) {
return 1;
}
return fib(n-1)+fib(n-2);
}
public static void main(String[] args) {
System.out.println(fib(6));
}
- 写一个递归方法,输入一个非负整数,返回组成它的数字之和
public static int faction(int n) {
if (n > 9){
int tmp = faction(n/10)+n%10;
return tmp;
}else{
return n;
}
}
public static void main(String[] args) {
System.out.println(faction(1234567));
}
- 按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)
public static void printf(int n) {
if(n > 9){
printf(n/10);
}
System.out.println(n%10);
}
public static void main(String[] args) {
printf(1234);
}
- 递归求 1 + 2 + 3 + … + 10
public static int sumOr(int n) {
if(n==1){
return 1;
}
int tmp = n+sumOr(n-1);
return tmp;
}
public static void main(String[] args) {
System.out.println(sumOr(10));
}
- 递归求 N 的阶乘
public class Main{public static int fac(int n){
int ret = 1;
for (int i = 1; i <= n; i++) {
ret*= i;
}
return ret;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int ret = fac(n);
System.out.println(ret);
}
}
生病的小孙就连干饭都没有力气真是太可恨了