求助各位大虾帮我写下,java金字塔,结果要这样:
112112421124842112481684211248163216842112481632643216842112481632641286432168421最好是f...
1
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
1 2 4 8 16 32 16 8 4 2 1
1 2 4 8 16 32 64 32 16 8 4 2 1
1 2 4 8 16 32 64 128 64 32 16 8 4 2 1
最好是for语句或者是数组写出来,还有帮忙注释下, 我是初学者,拜托了,感激不尽! 展开
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
1 2 4 8 16 32 16 8 4 2 1
1 2 4 8 16 32 64 32 16 8 4 2 1
1 2 4 8 16 32 64 128 64 32 16 8 4 2 1
最好是for语句或者是数组写出来,还有帮忙注释下, 我是初学者,拜托了,感激不尽! 展开
展开全部
public class Temp
{
public static void main(String args[])
{
int i,j,k; //定义三个局部变量
for(i = 1;i <= 8;i++) //8次循环,即输出8行
{
for(j = 8;j >= i;j--)System.out.print(" "); //输出每行头部的空格
for(j = 1,k = 1;j <= 2*i-1;j++) //每行的数字输出,此时要初始化K值
{
if(j < i){System.out.print(k+" ");k=k*2;} //每行数字的前半部是K值逐渐*2
else {System.out.print(k+" ");k=k/2;} //每行数字的后半部K值逐渐/2
}
System.out.println(); //换行
}
}
}
够简单吧 刚写的
{
public static void main(String args[])
{
int i,j,k; //定义三个局部变量
for(i = 1;i <= 8;i++) //8次循环,即输出8行
{
for(j = 8;j >= i;j--)System.out.print(" "); //输出每行头部的空格
for(j = 1,k = 1;j <= 2*i-1;j++) //每行的数字输出,此时要初始化K值
{
if(j < i){System.out.print(k+" ");k=k*2;} //每行数字的前半部是K值逐渐*2
else {System.out.print(k+" ");k=k/2;} //每行数字的后半部K值逐渐/2
}
System.out.println(); //换行
}
}
}
够简单吧 刚写的
追问
你能排列的跟我上面的一样么?第一行除外(这是在刚刚题目输错的)
追答
我不知道你第四行的8和第五行的16是如何对齐的
在第一层For语句中加上如下代码应该更好看些:
if(i<6)System.out.print(" ");
if(i==6)System.out.print(" ");
if(i==7)System.out.print(" ");
if(i==8)System.out.print(" ");
实在不想写的太繁琐
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询