题目一:绝对值
810. 绝对值 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int x = sc.nextInt();System.out.println(abs(x));}private static int abs(int x) {if(x < 0) return -x;else return x;}
}
题目二:两个数的和
806. 两个数的和 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);double x = sc.nextDouble(), y = sc.nextDouble();System.out.printf("%.2f\n",add(x,y));}private static double add(double x, double y) {return x + y;}
}
题目三:区间求和
807. 区间求和 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int l = sc.nextInt(), r = sc.nextInt();System.out.println(sum(l,r));}private static int sum(int l, int r) {int res = 0;for(int i = l; i <= r; i ++) {res += i;}return res;}
}
题目四:最小公倍数
809. 最小公倍数 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt(), b = sc.nextInt();System.out.println(lcm(a,b));//System.out.println(lcm2(a,b));}private static int lcm(int a, int b) {int res = a*b;int gys = 0;while(a%b!=0) {int t = a%b; a = b; b = t;}gys = b;//System.out.println(gys);return res/gys;}private static int lcm2(int a, int b) {for(int i = 1; i <= a*b; i ++) if(i%a==0 && i%b==0)return i;return -1; // 这里一定要返回, 不然会报错}}
题目五:复制数组
814. 复制数组 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), m = sc.nextInt(), size = sc.nextInt();int[] a = new int[n];int[] b = new int[m];for(int i = 0; i < n; i ++) a[i] = sc.nextInt();for(int i = 0; i < m; i ++) b[i] = sc.nextInt();copy(a,b,size);for(int i = 0; i < m; i ++) System.out.printf("%d ",b[i]);}private static void copy(int[] a, int[] b, int size) {for(int i = 0; i < size; i ++) b[i] = a[i];}
}
题目六:打印字符串
815. 打印字符串 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();print_str(str);}private static void print_str(String str) {System.out.println(str);}
}
题目七:数组翻转
816. 数组翻转 - AcWing题库
代码
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), size = sc.nextInt();int[] a = new int[n];for(int i = 0; i < n; i ++) a[i] = sc.nextInt();reverse(a,size);for(int i = 0; i < n; i ++) System.out.printf("%d ",a[i]);}private static void reverse(int[] a, int size) {for(int i = 0, j = size-1; i < size/2; i ++,j --) {int t = a[i]; a[i] = a[j]; a[j] = t;}}}
题目八:数组去重
817. 数组去重 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n];for(int i = 0; i < n; i ++) a[i] = sc.nextInt();System.out.println(get_unique_count2(a, n));}private static int get_unique_count(int[] a, int n) {int[] b = new int[1100];for(int i = 0; i < n; i ++) b[a[i]] ++;int res = 0;for(int i = 0; i < 1100; i ++) if(b[i]!=0) res ++;return res;}private static int get_unique_count2(int[] a, int n) {int res = 1;for(int i = 1; i < n; i ++) {int flag = 1;for(int j = 0; j < i; j ++) {if(a[j] == a[i]) {flag = 0;break;} }if(flag == 1) res ++;}return res;}
}
题目九:数组排序
818. 数组排序 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), l = sc.nextInt(), r = sc.nextInt();int[] a = new int[n];for(int i = 0; i < n; i ++) a[i] = sc.nextInt();sort(a,l,r);for(int i = 0; i < n; i ++) System.out.printf("%d ",a[i]);}private static void sort(int[] a, int l, int r) {for(int i = l; i <= r; i ++) {int t = a[i];for(int j = i-1; j >= l; j --) {if(a[j]<=t) {a[j+1] = t;break;}a[j+1] = a[j];if(j==l) a[j] = t;//处理边界}}}
}
代码2
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), l = sc.nextInt(), r = sc.nextInt();int[] a = new int[n];for(int i = 0; i < n; i ++) a[i] = sc.nextInt();sort(a,l,r);for(int i = 0; i < n; i ++) System.out.printf("%d ",a[i]);}private static void sort(int[] a, int l, int r) {for(int i = l; i < r; i ++) {for(int j = i+1; j <= r; j ++) {if(a[i]>a[j]) {int t = a[i]; a[i] = a[j]; a[j] = t;}}}}
}
代码3:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), l = sc.nextInt(), r = sc.nextInt();int[] a = new int[n];for(int i = 0; i < n; i ++) a[i] = sc.nextInt();quick_sort(a,l,r);for(int i = 0; i < n; i ++) System.out.printf("%d ",a[i]);}private static void quick_sort(int[] a, int l, int r) {if(l>=r) return ;int x = a[l+r>>1], i = l-1, j = r+1;while(i < j) {do i ++; while(a[i] < x);do j --; while(a[j] > x);if(i < j) {int t = a[i]; a[i] = a[j]; a[j] = t;}}quick_sort(a,l,j); quick_sort(a,j+1,r);}
}
题目十:跳台阶
821. 跳台阶 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();System.out.println(step(n));}private static int step(int n) {if(n == 0 || n == 1) return 1;return step(n-1) + step(n-2);}
}
代码2
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] step = new int[n+1]; solve(step,n);System.out.println(step[n]);}private static void solve(int[] step, int n) {step[1] = 1; if(step[n]!=0) return ; //防n==1,防越界step[2] = 2;for(int i = 3; i <= n; i ++) {step[i] = step[i-1] + step[i-2];}}
}
题目十一:走方格
822. 走方格 - AcWing题库
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), m = sc.nextInt();int[][] a = new int[n+1][m+1];step(a,n,m);System.out.println(a[n][m]);}private static void step(int[][] a, int n, int m) {for(int i = 1; i <= n; i ++) a[i][0] = 1;for(int i = 1; i <= m; i ++) a[0][i] = 1;for(int i = 1; i <= n; i ++) {for(int j = 1; j <= m; j ++) {a[i][j] = a[i-1][j] + a[i][j-1];}}}}
代码2
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(), m = sc.nextInt();System.out.println(step(n,m));}private static int step(int n, int m) {if(n == 0 && m == 0) return 1;int res = 0;if(n > 0) res += step(n-1,m);if(m > 0) res += step(n,m-1);return res;}}
题目十二:排列
823. 排列 - AcWing题库
代码 这串代码会超时,n=9时, n = 3可以正常输出结果
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] path = new int[n+1]; int[] st = new int[n+1];dfs(path,st,n,0);}private static void dfs(int[] path, int[] st, int n, int u) {if(u == n) {for(int i = 0; i < n; i ++) System.out.printf("%d ",path[i]);System.out.println("");return ;}for(int i = 1; i <= n; i ++) {if(st[i]==0) {st[i] = 1;path[u] = i;dfs(path,st,n, u+1);st[i] = 0;}}}
}
代码2
import java.util.Scanner;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;public class Main {private static int n;private static int[] path;private static boolean[] st;private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));private static void dfs(int u) throws Exception {if(u == n) {for(int i = 0; i < n; i ++) bw.write(path[i] + " ");bw.write("\n");}else {for(int i = 1; i <= n; i ++) {if(!st[i]) {st[i] = true;path[u] = i;dfs(u+1);st[i] = false;}}}}public static void main(String[] args) throws Exception{Scanner sc = new Scanner(System.in);n = sc.nextInt();path = new int[n+1]; st = new boolean[n+1];dfs(0);bw.flush();}
}