Java 如何右对齐Floyd';s三角幂为2
如何在输出Floyd三角形的最后2行向左移动? 以下是我的输出:Java 如何右对齐Floyd';s三角幂为2,java,for-loop,Java,For Loop,如何在输出Floyd三角形的最后2行向左移动? 以下是我的输出: 1 21 421 8421 168421 32168421 预期产出: 1 21 421 8421 168421 32168421 这是我的密码: for(int i=0; i<=5; ++i) { //total of space int n=6
1
21
421
8421
168421
32168421
预期产出:
1
21
421
8421
168421
32168421
这是我的密码:
for(int i=0; i<=5; ++i) {
//total of space
int n=6-i;
//print space
while(n>0) {
System.out.print(" ");
n--;
}
//print number
for(int j=i; j>=0; j--) {
System.out.print((int)Math.pow(2, j));
}
System.out.println(" ");
}
for(int i=0;i0){
系统输出打印(“”);
n--;
}
//打印号码
对于(int j=i;j>=0;j--){
系统输出打印((int)数学功率(2,j));
}
System.out.println(“”);
}
谢谢列表结果=新建ArrayList();
List<String> result = new ArrayList<>();
for(int i=0; i<=5; ++i) {
StringBuilder sb = new StringBuilder();
for(int j=i; j>=0; j--) {
sb.append((int)Math.pow(2, j));
}
result.add(sb.toString());
}
// You need to find out the longgest string for the padding left calculation
int length = result.get(result.size() - 1).length();
result.forEach((str -> System.out.println(padLeft(str, length))));
对于(int i=0;i=0;j--){
sb.append((int)Math.pow(2,j));
}
添加(sb.toString());
}
//您需要找出最长的字符串用于左填充计算
int length=result.get(result.size()-1.length();
forEach((str->System.out.println(padLeft(str,length)));
为填充添加一个直到方法:
public String padLeft(String inputString, int length) {
if (inputString.length() >= length) {
return inputString;
}
StringBuilder sb = new StringBuilder();
while (sb.length() < length - inputString.length()) {
sb.append(' ');
}
sb.append(inputString);
return sb.toString();
}
publicstringpadleft(stringinputstring,int-length){
if(inputString.length()>=length){
返回输入字符串;
}
StringBuilder sb=新的StringBuilder();
while(sb.length()
int lineLength=8;
对于(int i=0;i=0;j--){
sb.append((int)Math.pow(2,j));
}
//打印空间
对于(int spaces=lineLength-sb.length();空格>0;空格--){
系统输出打印(“”);
}
System.out.println(sb.toString());
}
还有一个更一般的例子:
public static void main(String[] args) {
int numbersToCompute = 10;
int lineLength = floydsNumber(numbersToCompute).length();
for (int i = 0; i <= numbersToCompute; ++i) {
String floydsNumber = floydsNumber(i);
for (int spaces = lineLength - floydsNumber.length(); spaces > 0; spaces--) {
System.out.print(" ");
}
System.out.println(floydsNumber.toString());
}
}
private static String floydsNumber(int i) {
StringBuilder sb = new StringBuilder();
for (int j = i; j >= 0; j--) {
sb.append((int) Math.pow(2, j));
}
return sb.toString();
}
publicstaticvoidmain(字符串[]args){
int numbersToCompute=10;
int lineLength=floydsNumber(numbersToCompute).length();
对于(int i=0;i 0;空格--){
系统输出打印(“”);
}
System.out.println(floydsNumber.toString());
}
}
私有静态字符串floydsNumber(int i){
StringBuilder sb=新的StringBuilder();
对于(int j=i;j>=0;j--){
sb.append((int)Math.pow(2,j));
}
使某人返回字符串();
}
public static void main(String[] args) {
int numbersToCompute = 10;
int lineLength = floydsNumber(numbersToCompute).length();
for (int i = 0; i <= numbersToCompute; ++i) {
String floydsNumber = floydsNumber(i);
for (int spaces = lineLength - floydsNumber.length(); spaces > 0; spaces--) {
System.out.print(" ");
}
System.out.println(floydsNumber.toString());
}
}
private static String floydsNumber(int i) {
StringBuilder sb = new StringBuilder();
for (int j = i; j >= 0; j--) {
sb.append((int) Math.pow(2, j));
}
return sb.toString();
}