编程题(4):人人网

来源:互联网 发布:网络上hx是什么意思 编辑:程序博客网 时间:2024/05/21 09:22

1、最大公约数

package cn.com.renren;import java.util.Scanner;public class Main1 {public static void main(String[] args) {Scanner sc =new Scanner(System.in);while(sc.hasNext()){int n = sc.nextInt();sc.nextLine();int m = sc.nextInt();int sum = 0;int i = 1;for(i=1;i<=n;i++){sum += i*5;if(sum>240-m){break;}}System.out.println(i-1);}}}

2、边界问题

package cn.com.renren;import java.util.Scanner;public class Main2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {int n = sc.nextInt();sc.nextLine();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = sc.nextInt();}int result = 0;if (n == 1) {result = arr[0];} else if (n == 2) {result = maxCommonDivisor(arr[0], arr[1]);} else {result = maxCommonDivisor(arr[0], arr[1]);for (int i = 2; i < n; i++) {result = maxCommonDivisor(result, arr[i]);}}System.out.println(result);}}private static int maxCommonDivisor(int m, int n) {if (m < n) {int temp = m;m = n;n = temp;}if (m % n == 0) {return n;} else {return maxCommonDivisor(n, m % n);}}}


3、注意时间复杂度,全求和

package cn.com.renren;import java.util.Arrays;import java.util.Scanner;public class Main4 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {int n = sc.nextInt();sc.nextLine();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = sc.nextInt();}int result = 0;//if (n != 1) {//for (int i = 1; i < n; i++) {//int[] arr0 =  Arrays.copyOfRange(arr, 0, i);//此方法  每次都会遍历一次数组,且从第一个开始加,空间复杂度比较高,不合适//int[] arr1 = Arrays.copyOfRange(arr, i, arr.length);//if (sumArray(arr0) == sumArray(arr1)) {//result++;//}//}//}int left = 0;int right = 0;if(n!=1){for(int i =0;i<n-1;i++){left += arr[i];if(i==0){for(int j=n-1;j>i;j--){right +=arr[j];}}else{right -= arr[i];}if(right==left){result++;}}}System.out.println(result);}}public static int sumArray(int[] arr) {int sum = 0;for (int i : arr) {sum += i;}return sum;}}


0 0
原创粉丝点击