一个正整数的个位数字是6,如果把个位数字移到首位,所得到的数是原数的4倍,试编程找出满足条件的最小正整数。
求救上题的编程思想和可供的Java代码谢谢了

解决方案 »

  1.   

    (1)个位数字为6;
    (2)将个位的6移到首位,得到的新数是原数的4倍。假设原来的数字去掉6后为A,那么这个数就是:10A+6,6移到前面去后这个数变成:6*10^N+A依题意有:(10A+6)*4=6*10^N+A,整理得:13A=2*10^N-8。即等号后面是13的倍数。试算N=5时,A=15384。所以原来的数是153846。
      

  2.   


          for(int i = 1; i>0; i++){
         String str = i+"";
         String x = str.substring(str.length()-1);
         if(x.equals("6")){
     int y = Integer.parseInt(6+str.substring(0,str.length()-1));
     if(i*4==y){
        System.out.println(i);
        break;
     }
         }
          }
      

  3.   

    public static void get() {
    int i = 106;
    while (true) {
    //  如果找到了,则输出,跳出循环
    if (i * 4 == change(i) * 6 + i / 10) {
    System.out.println(i);
    break;
    }
    i+=10;
    }
    }

    // 寻找数的数量级
    public static int change(int d) {
    int result = 1;
    int temp = d;
    while ((temp /= 10) != 0) {
    result *= 10;
    }
    return result;
    }最传统的方法,没有介入其他函数。
      

  4.   

    谢谢2楼的朋友这是我自己写的
    int i;
    double sum;
    for(i=0;;i++){
    sum=(Math.pow(10,(double) i)*2)-8;
    if((int)sum%13==0){
    sum/=13;
    sum=10*sum+6;
    System.out.println((int)sum);
    break;
    }
    }