日期:2014-05-20  浏览次数:20603 次

怎样在Java中将一个整形数赋给一个字符串?
关于水仙花数的一个改进问题,3位数的我已经写好了,如何用方便的将其改为求4位或5位的,初学Java,望指教.
自己想了一个方法,借助字符串来实现,这样是不是就可以利用 "char   charAt(int   t) "来获取每一位数字?可是我不知道该怎样把一个整形数赋给一个字符串,大家说呢?或者大家有什么好的建议?

附下我写的程序:
import   java.io.*;
public   class   Flower{
                public   static   void   main(String   args[]){
                int   i,bw,sw,gw,t;
                for(i=100;i <=999;i++){

                  bw=i/100;
sw=(i/10)%10;
gw=i%10;
t=bw*bw*bw+sw*sw*sw+gw*gw*gw;
if(i==t)
System.out.println(t);
}
}
}

------解决方案--------------------
allwe2003() ( ) 信誉:100 Blog 2007-3-29 15:55:02 得分: 0

恩,回答的挺全的,呵呵。
哪位有时间写一个求水仙花的改进算法吗?
能够根据输入的位数来求该水仙花。
如:输入4,就可以求教位数的水仙花有哪些?
或提个建议,怎么实现?


按你说的写了一个扩展算法,能够求任意位数的水仙花数,不过没有任何实用价值
因为刚才看到你提出了这个设想就开始做了,可是却忽略了一点:水仙花数只有三位数的有。。。
不过既然写了还是贴出来吧,重在思想:-)

public class NewFlower {
public static void main(String[] args) {
if (args.length != 1 || Integer.parseInt(args[0]) < 1) {
System.out.println( "parameter error! ");
System.exit(-1);
}
int digit = 0;
String str = " ";
String temp ;
digit = Integer.parseInt(args[0]);
for (int i = (int)Math.pow(10, digit-1); i < (int)Math.pow(10, digit); i++) {
str = Integer.toString(i);
int sun = 0;
for(int j = 0; j < str.length(); j++) {
temp = Character.toString(str.charAt(j));
sun += (int)Math.pow(Integer.parseInt(temp), 3);
}
if(i==sun)
System.out.println(i);
}
}
}