所以我的想法是从用户那里得到一个数字,这是数字的小数位数。然后我打印出他的许多小数位的每个可能的结果。
因此,如果用户输入“2”,则输出01 02 03 ... 99
。我还必须将此数字存储为字符串。我很难将数字循环,它会在每次循环后重置。这是我的代码。
import java.util.Scanner;
public class Hw2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
diff here = new diff();
String res;
String d = "0";
do {
System.out.println("Enter 1 to enter length of number: ");
System.out.println("q. quit: ");
System.out.print("select:");
res = in.next();
in.nextLine();
switch(res.charAt(0)) {
case '1':
// get n from user
System.out.print("Enter the length of string: ");
int n = in.nextInt();
diff.printDecimal(n, d);
break;
case 'q': case 'Q':
System.out.println("Bye!");
break;
default:
System.out.println("Invalid");
break;
}
} while (res.charAt(0) != 'q' && res.charAt(0) != 'Q');
}
}
class diff {
// print string
static void printDecimal (int n, String d) {
String maxNum = "9";
while( maxNum.length() < n ) {
maxNum += 9;
}
while (d != maxNum) {
System.out.println(inDecimal(n, d));
}
}
// increase string value by 1
static String inDecimal(int n, String d) {
String d2 = "";
int d3 = Integer.parseInt(d);
d3++;
d = Integer.toString(d3);
//d = String.valueOf(d) + 1;
while( d.length() < n ) {
d2 = "0" + d;
d = d2;
}
System.out.println(d);
return d;
}
}
感谢您的帮助! 也只是为了记录,我通常会去找一个这样的问题的导师,但他们还没有聘请这个学期的导师。
答案 0 :(得分:0)
这样的东西?
int places = 2;
for (int i = 0; i < Math.pow(10, places); i++) {
System.out.printf("%0" + places + "d\n", i);
}
字符串格式化为带有2个位置的零填充数字。
输出
00
01
02
03
04
05
06
07
08
09
10
...
99