本文主要是介绍蓝桥杯2013年第四届真题-幸运数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从3开始,找(数组下标+1)%3==0 的数字 ,start: 幸运数字的下标; a[start] 幸运数字,然后找处符合条件的(然所有能被a[start]整除的序号位置的数删去)保留啥也不动,不符合条件的如果前面有符合的前移。
package com.lanqiao2013;import java.util.Scanner;public class LuckyNumber {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int m = scan.nextInt();int n = scan.nextInt();int[] a=new int[n];//初始化for(int i=0;i<n;i++) {a[i]=2*i+1;}recur(a, 1, n);//计算幸运数的数量int count=0;for(int i=0;i<n&&a[i]<=n;i++) {if(a[i]>m&&a[i]<n) count++;}System.out.println(count);}public static void recur(int[]a,int start,int end) {//start: 幸运数字的下标; a[start] 幸运数字int k=start;int e=a[start];for(int i=start;i<end;i++) {if((i+1)%e!=0) {a[k]=a[i];k++;}}if(e+1<end) {recur(a, start+1, end);}}
}
这篇关于蓝桥杯2013年第四届真题-幸运数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!