我想將任何數字分成任何相同的部分,最后剩下但不可分割的部分將是最后一塊。我寫了這段代碼,但我知道它應該是更簡單的方法:) 例如;7500 除以 2000,最后一個模數部分將是最后一個部分。有什么建議么?
public class MyClass {
public static void main(String args[]) {
int x =7500;
int y = 2000;
int lastPartCount = 0;
String result = new String();
if(x%y != 0){
lastPartCount = x%y;
}
int newx = x-lastPartCount;
for(int i=1; i<=(newx/y); i ){
if(i == 1){//first member
result = "part " i ": 0-" y*i;
}else
{
result = "part " i ": " (y*(i-1)) "-" y*i;
}
System.out.println(result);
if(i == (newx/y)){//last member
result = "part " (i 1) ": " (y*(i)) "-" x;
System.out.println(result);
}
}
}
}
結果是這樣的:
part 1: 0-2000
part 2: 2000-4000
part 3: 4000-6000
part 4: 6000-7500
uj5u.com熱心網友回復:
您可以簡化代碼,如下所示:
public static void main(String args[]) {
int x = 7500;
int y = 2000;
for (int i = 0; i < x/y; i ) {
System.out.println("Part " (i 1) ": " y*i " - " y*(i 1));
}
if (x%y != 0) {
System.out.println("Part " ((x/y) 1) ": " (x/y)*y " - " x);
}
}
(x/y)*y)不等于,x因為你除整數,所以(x/y)*y實際上與ifor回圈的“下一個”相同。
uj5u.com熱心網友回復:
你也可以試試下面的代碼:
private void test() {
int x = 7500;
int y = 2000;
int j = 0;
int newX = x;
while (newX > y) {
System.out.println("Part " (j 1) " = " y * j " - " y * j);
newX -= y;
}
System.out.println("Part " (j 1) " = " j * y " - " x);
}
uj5u.com熱心網友回復:
在 for 回圈中使用兩個變數的替代方法和Math.min():
int x = 7500;
int y = 2000;
for (int i = 0, p = 1; i < x; i = y, p ) {
System.out.printf("Part %d: %d - %d%n", p, i, Math.min(i y,x));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/480296.html
標籤:爪哇
