。。。
请教各位高手,谢谢。各位请帮帮忙,我是新手。
(要求:最好不用数组,按规律至少输出7行,输出后排列错落有致)
。。。
请教各位高手,谢谢。各位请帮帮忙,我是新手。
(要求:最好不用数组,按规律至少输出7行,输出后排列错落有致)
public class Demo {
public static void show(){
for(int i =1 ; i<=8; i++){
//输出控制的格式
for(int k = (8-i)*3 ;k>=1;k--){
System.out.print(" ");
}
//输出左边的数字
for(int j = 1;j<=i;j++){
int max = getMax(j);
System.out.print((max>100?max:max>10?" "+max:" "+max));
}
//输出右边的数字
for(int m = i-1;m>=1;m--){
int max = getMax(m);
System.out.print((max>100?max:max>10?" "+max:" "+max)+" ");
}
System.out.println();
}
}
private static int getMax(int i) {
int max = 1 ;
for(int j = 1;j<i;j++){
if((i-1)==0){
max = 1;
break;
}else{
max=2*max;
}
}
return max;
}
public static void main(String[] args) {
show();
}
}
我都给你测试好你 直接运行就可以了
思路:
for(i=1;i<=7;i++) //i 作为 行 看待
for(j=1;j<=2*i-1;j++) //j 作为 列 看待 每行 输出 奇数个 数
System.out.print( "这里 分 两部分 来看 , pow(2,k++)的思路 .. 前面 在 累加 k ; 这里 也 可 for循环
后面 的 pow(2,k--) 也用一个 for 循环
pow 则要 import.java.math 这个类库
不用pow 方法,则用 s =s *2 的for 思路
后面
// 存在 2^7 = 128 .. 与 前面 对齐,最好每个数输出有 3 个 空格 // 注意 ,是 数位 低的 3个 空格