• Java实现 洛谷 P1036 选数


    在这里插入图片描述

    import java.util.Scanner;
     
    public class Main {
    	private static Scanner cin;
    	private static int[] numbers ;
    	private static int counter = 0;
    	
    	public static void main(String args[]) throws Exception {
    		cin = new Scanner(System.in);
    		int n = cin.nextInt();
    		int k = cin.nextInt();
    		numbers = new int[n];
    		for(int i=0;i<n;i++) {
    			numbers[i] = cin.nextInt();
    		}
    		for(int i=0;i<n-k+1;i++) {
    			Main.calc(n,i,k,0,String.valueOf(i));
    		}
    		System.out.println(counter);
    	}
    	
    	public  static void calc(int n,int start, int k,int ret,String value) {
    		int sum = 0;
    		if(n-start <k ) {
    			return;
    		}
    		if (k == 1) {
    			sum = ret + numbers[start];
    			if(testIsPrime(sum)) {
    				counter++;
    			}
    		}else {
    			sum = ret+numbers[start];
    			for (int i=start;i<n;i++) {
    				calc(n,i+1,k-1,sum,value+"-"+i);
    			}
    		}
    	}
    	
    	 public static boolean testIsPrime(int n){
    	       if (n <= 3) {
    	            return n > 1;
    	        }
    	        
    	       for(int i=2;i<=Math.sqrt(n);i++){
    	           if(n%i == 0)
    	               return false;
    	       }
    	       return true;
    	   }
    }
     
    
  • 相关阅读:
    Cocos2d-x 内存管理
    Cocos2d-x 解惑
    前端最实用、全面的工具类方法
    Java web 项目获取时间的方式列举
    Win系统常用指令
    Js三级下拉列表联动
    Js数组操作
    常用网站推荐
    最常用的正则表达式
    Oracle数据库学习
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076755.html
Copyright © 2020-2023  润新知