一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位

一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为15... 一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为 153 = 1³ + 5³ + 3³ 。 (只用java基本的语法知识做出来) 展开
 我来答
淦浩博4L
2015-10-13
知道答主
回答量:35
采纳率:0%
帮助的人:9.5万
展开全部

  

public class ShuiXian {
  public static void main(String[] args) {
      int a = 0;//百位数字
      int b = 0;//十位数字
      int c = 0;//个位数字
      int temp = 0;//百位数字立方+数位数字立方+个位数字立方
      for (int i = 100; i < =999; i++) {
          a = i/100;//计算百位数字
          b = (i-a*100)/10;//计算十位数字
          c = i%10;//计算个位数字
          temp = a*a*a+b*b*b+c*c*c;//相加结果
          if(temp==i){//判断是否相等
              System.out.println(i);
          }
      }
  }
 }

  3位数其各数字立方和等于该数本身,已经限定了数字范围在100~~999之间。

  

追问
有错误,而且for循环里面没看懂
雪飞潇潇
2015-10-13 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:873万
展开全部
ublic class TestDemo {
public static void main(String[] args) {
// 水仙花数”是指一个3位数其各位数字立方和等于该数本身
// 因为是三位数 所以 就不用从1循环到1万,直接从100到999
for (int i = 100; i <= 999; i++) {
if (isNum(i)) {
System.out.print(i + " ");
}
}
}

private static boolean isNum(int n) {
int a = n / 100; //百位
int b = n % 100 / 10;//十位
int c = n % 10;//个位
return n == a * a * a + b * b * b + c * c * c;
}
}

输出结果

153 370 371 407
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤独的探戈1573
推荐于2018-02-13 · TA获得超过580个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:156万
展开全部

更多追问追答
追问
蓝色的地方看不懂
追答
不要在意这些  他只是起到了打印的 空格效果   system.err.printf("%-5d",n)这一句完全可以换成System.out.print(n+" ");     这样看就明白了吧     print打印不换行   println是换行  最后那一句  system.err.println(“/n”)没有什么用 去掉不影响
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式