A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

额,今天有个题是打印水仙花数,视频中获取一个三位数的各个位上的数字的方法是除求模,例如abc,则a=abc/10/10%10;b=abc/10%10;c=abc%10;我自己写的时候是用的a=i/100;b=(i-100*a)/10;c=i-100*a-10*b;请问这两种方法哪种更好一点,效率呢?还有平时自己在写代码的时候怎么知道自己的代码是不是最优,如何优化。谢谢

12 个回复

倒序浏览
感觉视频中的好一点,理解起来比较容易。而且个十百位表示起来有一定的规律。
回复 使用道具 举报
个人认为使用%运算更好,也更简便,不过如果你定义的三位数是abc那就使用for循环就可以了,a,b,c的值都是1-9
回复 使用道具 举报
//还有一种方法
  1.         public void print(){
  2.                 for (int i =1; i <=9; i++) {
  3.                         for (int j = 0; j <10; j++) {
  4.                                 for (int j2 = 0; j2 <10; j2++) {
  5.                                         int temp=i*100+j*10+j2;
  6.                                         if(temp==i*i*i+j*j*j+j2*j2*j2){
  7.                                                 System.out.println(temp);
  8.                                         }
  9.                                 }
  10.                         }
  11.                 }
  12.         }
复制代码
回复 使用道具 举报
程序的设计原则:代码简洁且容易理解,所以abc,则a=abc/10/10%10;b=abc/10%10;c=abc%10更佳。
回复 使用道具 举报
新人路过。。。。。。
回复 使用道具 举报
看我的这个代码,希望能给你带来灵感
  1. class ClassDemo6
  2. {
  3.         public static void main(String[] args)
  4.         {        int z=0;
  5. bastard:for ( int  a=10000;a<=9999999;a++)
  6.                         {
  7.                                 if((a%10==a/10000)&(a/10%10==a/1000%10)&(a/100%10==a%10+a/10%10+a/1000%10+a/10000))
  8.                         {
  9.                                 System.out.println(a);
  10.                                 z++;
  11.                                 if (z==5)
  12.                                 {
  13.                                         break bastard;
  14.                                 }
  15.                         }
  16.                                
  17.                 }
  18.         }
  19. }
复制代码
回复 使用道具 举报
dwy_hm 中级黑马 2014-12-19 22:55:58
8#
a=abc/10/10%10;b=abc/10%10;c=abc%10 简洁点
回复 使用道具 举报
写一个截取的方法,然后用直接调用这个方法就可以了,至于优化,得看经验了,如果你都不知道最优化的方法,你怎么验证?
回复 使用道具 举报
hello_csu 发表于 2014-12-19 22:00
程序的设计原则:代码简洁且容易理解,所以abc,则a=abc/10/10%10;b=abc/10%10;c=abc%10更佳。 ...

我感觉还有一个要素,那就是程序执行的效率
回复 使用道具 举报
Alexrl 中级黑马 2014-12-19 23:17:17
11#
学的越多,你就知道怎么优化了。
回复 使用道具 举报
当然第一种啦
回复 使用道具 举报
简单的代码才是最好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马