如何找到最小的数字,只有0和7除以给定的数字?

时间:2015-03-27 10:36:30

标签: java algorithm dynamic-programming

这是我在一次采访中遇到的算法问题之一。无法弄清楚如何以最有效的方式解决它。

2 个答案:

答案 0 :(得分:1)

这是我建议的代码。它在long范围内找到0和7(数字0除外)的最小数字。 在这种情况下,我正在寻找11的结果。

public class Class007
{
   static long NUM = 11;
   public static void main(String[] args)
   {
       //NUM is the given number
       //find007() finds the smallest number with 0 & 7 that is divided by NUM
       System.out.print(find007(NUM));
   }

     static long find007(long n){

       if(is007(n))
         return n;

       if(n+NUM<n)
         return 0;

       return find007(n+NUM);
     }
     static boolean is007(long n){
        while(n!=0 && (n%10==0 || n%10==7))
         n=n/10;

       return n==0;
     }
}

答案 1 :(得分:0)

根据THIS QUESTION,在http://oeis.org/中,您可以找到此类数字序列:Check your's here

a(n) = min{A204094(k): k > 0 and A204094(k) mod n = 0}

只需调整算法以满足您的需求。