2017-01-12 25 views
0

所以吐出一个整数,它要求我写一个这么喜欢打印任何5位数的整数向后每个数字一个一个程序:如何使用模式来与我在线课程向后

14325将打印as

5 
2 
3 
4 
1 

老师希望我们使用整数算术来实现这一点,并说有一种模式。

我在这里坐了半个小时试图寻找一个答案,但每个人似乎都没有整数算术,我发现。

我不是要求像这个问题的完整解决方案,只是要求有人请指点我在正确的方向。非常感谢!

+2

嗨,你能发表迄今为止已经尝试过的吗? – Yaje

+1

最后一位数字是将数字除以10后剩余的数字。用数字/ 10给出的整数(即向下,向下)重复该步骤。 –

+0

可能你会对* pattern *这个词感到困惑。我想他的意思是:“算法”,或仅基于数学的计算。 – GhostCat

回答

4

打印的最后一个数字(模10),然后重复10分这直至原数变为0

int number = 14325; 

while(number > 0) { 
    System.out.println(number % 10); 
    number /= 10; 
} 
+0

我会考虑这种过度帮助。通过帮助他找出如何解决这个任务,你可以帮助这个学生。通过为他解决问题,你没有任何好处。请参阅[我如何问和回答作业问题?](http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions) –

+0

嘿不能使用while循环但谢谢 –

+0

while循环不能使用?有没有其他的循环可以使用?也许你可以自己重写循环? @GaryFishell(有趣的限制,那一个) –

1

使用String.toCharArray

String number = 12345 + ""; 
    char[] chars = number.toCharArray(); 
    for(int i = chars.length - 1; i >= 0 ; i--){ 
     System.out.println(chars[i]); 
    } 
+0

虽然它提供了预期的输出,但它似乎并不符合“老师希望我们使用整数算术来实现这一目标”的精神。 –

+0

对不起,无法使用或类似的东西,只有整数算术 –

0

相信,你在递了你现在的作业,我想详细说一下我的评论“如果你知道整数总是5位数,那么可能没有循环。”这里是:

if (number < 10000 || number > 99999) { 
     throw new IllegalArgumentException("Requiring five digits, got " + number); 
    } 
    System.out.println(number % 10); 
    System.out.println(number/10 % 10); 
    System.out.println(number/100 % 10); 
    System.out.println(number/1000 % 10); 
    System.out.println(number/10000 % 10); 

如果number14325,这个打印:

5 
2 
3 
4 
1 

试图只是有点读心在这里(当然不是我的家域)时,“模式”你的老师讲到可能是这一点,数除以(除数)每个数字得到一个额外的0(如果你想让它符合模式,你甚至可以写第一行为System.out.println(number/1 % 10);,但是真的......)。所以没有设计模式或正则表达式模式,因为有些人可能会解释这个词。

编辑:% 10在最后的声明是多余的。为了这种模式,我将它留在那里。

相关问题