我正在尝试创建一个1到5的表格,其中最多显示6个值。
因此,举例来说,第2列将从1,2,4,8,16,32,64移至此处并停止。
我无法获取正确的表格格式。由于数字未对齐应有的位置。
例如:
我现在面临的问题是
1 2 3 4 5
1 1 1 1 1 1 1 2 4 8 16等等
不胜感激,我的代码在下面。
int powNumb=5;
int powValue=6;
for (int i = 1; i <= powValue; i++) {
System.out.printf("%10d",i);
}
System.out.println();
for (int i = 1; i <= powNumb; i++) {
for (int j = 0; j <=powValue; j++) {
System.out.printf("%10.0f",Math.pow(i, j));
}
}
答案 0 :(得分:2)
这应该对您有帮助
for (int i = 1; i <= powNumb; i++) {
System.out.printf("%10d", i); //Print the number (1st col)
for (int j = 0; j <= powValue; j++) { //This loop prints the powers of the curent number 'i'
System.out.printf("%10.0f", Math.pow(i, j));
}
System.out.println(); //To end the current row
}
此打印
num num^0 num^1 num^2 ... num^powValue
其中num从1到powNumb
输出
1 1 1 1 1 1 1 1
2 1 2 4 8 16 32 64
3 1 3 9 27 81 243 729
4 1 4 16 64 256 1024 4096
5 1 5 25 125 625 3125 15625
答案 1 :(得分:1)
每个元素的基数相同,因此不需要内循环:
for (int i = 1; i <= powNumb; i++) {
System.out.printf("%10.0f", Math.pow(powValue, i));
}
这样,权力的基础始终是powValue
。
答案 2 :(得分:1)
首先,您需要在内部for循环中的某个地方使用println
语句来分隔行。
第二,您需要将通话中的i
和j
切换到Math.pow
。因为按照当前的设置方式,每一行的值都是i = row number
,幂为0到6。例如,第一行是1^0 1^1 1^2 1^3 1^4 1^5 1^6
。然后,第二行将是2^0 2^1 2^2 2^3 2^4 2^5 2^6
,但是,您希望第一行是1^0 2^0 3^0 4^0 5^0
,第二行是1^1 2^1 3^1 4^1 5^1
,依此类推。因此,您的代码应更改为类似的内容,>
int powNumb=5;
int powValue=6;
for (int i = 1; i <= powNumb; i++) {
System.out.printf("%10d",i);
}
for (int i = 0; i <= powValue; i++) {
System.out.println();
for (int j = 1; j <=powNumb; j++) {
System.out.printf("%10.0f",Math.pow(j, i));
}
}
输出:
1 2 3 4 5
1 1 1 1 1
1 2 3 4 5
1 4 9 16 25
1 8 27 64 125
1 16 81 256 625
1 32 243 1024 3125
1 64 729 4096 15625
此外,我还必须在for循环条件下切换powNumb
和powValue
。