求高手看看哪里错了?
我用for循环了一个求阶乘的语句,但是运行不出结果,我断点试过后发现proz没有重新计算,求各位高手解释下:
- Java code
public static void main(String[] args) { // TODO Auto-generated method stub int prox=1,proy=1,proz=1,i=1; String str=""; for(int x=1;x<=9;x++){ prox*=x; for (int y = 1; y <=9 ; y++) { proy*=y; for (int z = 1; z <=9 ; z++) { proz*=z; // z=i%10; // y=(i/10)%10; // x=(i/100); i=100*x+10*y+z; if (prox+proy+proz==i) { str=str+"x="+x+" y="+y+" z="+z+'\n'; } } } }System.out.println(str);[解决办法]
楼主忘了每次循环之前把累计值复位了:
- Java code
for (int x = 1; x <= 9; x++) { prox *= x; proy = 1; for (int y = 1; y <= 9; y++) { proy *= y; proz = 1; for (int z = 1; z <= 9; z++) { proz *= z; i = 100 * x + 10 * y + z; if (prox + proy + proz == i) { str = str + "x=" + x + " y=" + y + " z=" + z + '\n'; } } } }