一道面试题,我的解法

题目:找出111111111~999999999中符合以下条件的9位数:
9位数的前三位数是中间三位数的2倍,是最后三位数的3倍,并且这个9位数的每位数字只能是1~9,不能有重复的数字

我的解法:

class a {
public static void main(String args[])
  int a[ ]=new int[10];
  out:for(int i=312;i<=999;i+=6)
  {
      int j=i/2,k=i/3;//获得i ,j ,k 的值

      a[0]=i/100;   //得到9位数的各个位置的数
      a[1]=(i % 100)/10;
      a[2]=((i % 100)  % 100 );
      a[3]=j/100;  
      a[4]=(j % 100)/10;
      a[5]=((j % 100) % 10);
      a[6]=k/100;  
      a[7]=(k % 100)/10;
      a[8]=((k % 100 ) % 10);

      //查看数据是否有0

      for(int m=0;m<9;m++)
      { if(a[m]==0) {  continue out;}}

      //查看是否存在这样的数
      for(int p=0;p<9;p++)
      {
         for(int q=0;q<9;q++)
         {
             if(a[p]==a[q]) continue out;
          }
          if(p==9){ System.out.println(i+" "+j+" "+k); break ;}
      }
          
   }
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值