黑马程序员技术交流社区
标题:
【新人】关于打印水仙花数的问题请教大家
[打印本页]
作者:
reyzarc
时间:
2014-12-18 22:45
标题:
【新人】关于打印水仙花数的问题请教大家
额,今天有个题是打印水仙花数,视频中获取一个三位数的各个位上的数字的方法是除求模,例如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;请问这两种方法哪种更好一点,效率呢?还有平时自己在写代码的时候怎么知道自己的代码是不是最优,如何优化。谢谢
作者:
7788665544
时间:
2014-12-18 22:51
感觉视频中的好一点,理解起来比较容易。而且个十百位表示起来有一定的规律。
作者:
古月哥欠
时间:
2014-12-19 00:28
个人认为使用%运算更好,也更简便,不过如果你定义的三位数是abc那就使用for循环就可以了,a,b,c的值都是1-9
作者:
quick3g
时间:
2014-12-19 00:37
//还有一种方法
public void print(){
for (int i =1; i <=9; i++) {
for (int j = 0; j <10; j++) {
for (int j2 = 0; j2 <10; j2++) {
int temp=i*100+j*10+j2;
if(temp==i*i*i+j*j*j+j2*j2*j2){
System.out.println(temp);
}
}
}
}
}
复制代码
作者:
hello_csu
时间:
2014-12-19 22:00
程序的设计原则:代码简洁且容易理解,所以abc,则a=abc/10/10%10;b=abc/10%10;c=abc%10更佳。
作者:
只会金克斯
时间:
2014-12-19 22:41
新人路过。。。。。。
作者:
18334705181
时间:
2014-12-19 22:53
看我的这个代码,希望能给你带来灵感
class ClassDemo6
{
public static void main(String[] args)
{ int z=0;
bastard:for ( int a=10000;a<=9999999;a++)
{
if((a%10==a/10000)&(a/10%10==a/1000%10)&(a/100%10==a%10+a/10%10+a/1000%10+a/10000))
{
System.out.println(a);
z++;
if (z==5)
{
break bastard;
}
}
}
}
}
复制代码
作者:
dwy_hm
时间:
2014-12-19 22:55
a=abc/10/10%10;b=abc/10%10;c=abc%10 简洁点
作者:
qowoeo7538
时间:
2014-12-19 22:56
写一个截取的方法,然后用直接调用这个方法就可以了,至于优化,得看经验了,如果你都不知道最优化的方法,你怎么验证?
作者:
edidada
时间:
2014-12-19 22:57
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
学的越多,你就知道怎么优化了。
作者:
黑马-李权88
时间:
2014-12-19 23:32
当然第一种啦
作者:
I空空
时间:
2014-12-21 13:14
简单的代码才是最好的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2