Java水仙花数与Presentation Error

来源:互联网 发布:java destroy方法 编辑:程序博客网 时间:2024/06/06 02:56

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999),输入为0 0时表示输入数据结束(不需要输出)。
100 120
300 380
0 0
no
370 371

   问题很简单,for循环取数然后个位十位等三次方相加判断与本身是否相等。此题在西科大OJ提交一直PE,问题在于在最后一个输出数后面不能有空格,所以代码不能简单的(num+“ ”)了事。解决思路一是单独处理最后一个水仙花数但判断是否最后一个比较困难,思路二单独处理第一个水仙花数而后面的水仙花数都改成(“ ”+num)这种方式交简单。JAVA刚入手代码并不好看仅供参考。

import java.util.Scanner;public class Main {void getNum(int i,int j) {int flag=0;for(int k=i;k<j;k++) {if(k==this.getM(k)) {if(flag==0) {System.out.print(k);}else {System.out.print(" "+k);}flag=1;}}if(flag==0) {System.out.println("no");}else {System.out.print("\n");}}public int getM(int i) {int num=0;while((i>0)) {num+=this.get3Power(i%10);i=i/10;}return num;}public int get3Power(int i) {return i*i*i;}public static void main(String[] args) {Scanner in=new Scanner(System.in);int i=0,j=0;while(true) {i=in.nextInt();j=in.nextInt();if(i==0&&j==0) {break;}else {Main mymain=new Main();mymain.getNum(i, j);}}}}


原创粉丝点击