所以我有这段代码:
int in = 496;
boolean b = true;
Sting s = "":
if (b) {
int test = 0;
System.out.print(in + ":");
for (int i = 1; i < in; i++) {
if (in % i == 0) {
test += i;
s += i + " ";
}
}
System.out.println(" ");
} else {
System.out.println(in + " no factorials");
}
它的打印方式如下:
496:1 2 4 8 16 31 62 124 248
但我想将factorials输出反转为:
496:248 124 62 31 16 8 4 2 1
我试图扭转for循环,但它有效,所以任何想法的人?
答案 0 :(得分:2)
改变循环确实是你需要的:
for (int i = in-1; i > 0; i--) {
顺便问一下,你是怎么发布你的代码的?您粘贴(或键入)的内容不会打印任何因子,s =+ ...
应该是s += ...
,对吧?请尽可能简洁,所以我们必须猜测/纠正真正的问题,而不是任何错别字。
答案 1 :(得分:0)
未经测试,但为什么这不起作用?
int in = 496;
boolean b = true;
Sting s = "":
if (b) {
int test = 0;
System.out.print(in + ":");
for (int i = in-1; i > 0; i--) {
if (in % i == 0) {
test += i;
s =+ i + " ";
}
}
System.out.println(" ");
} else {
System.out.println(in + " no factorials");
}
另外,如果你使用更好的变量名称,它会对每个人都有帮助......一旦你的方法变得有点复杂,就很难跟上's','b','i',甚至'in'