永发信息网

1、 编写一个Java Application程序,循环打印如下图型:

答案:4  悬赏:40  手机版
解决时间 2021-02-06 02:26
提示:可以将一个整数看成是ASCII码,转换为对应的字符。如:
(char)65 à 得到ASCII码65对应的字符“A”



最佳答案
public class Test {

public static void main(String args[]){
int maxLength=17;
for(int i=1,z=0;i<=9;i++,z++){
int j=1;
while(j<=maxLength){
if(j>=maxLength/2-z+1 && j<=maxLength/2+z+1)System.out.print(i);
else System.out.print(" ");
j++;
}
System.out.println();
if(i==9){
z--;
for(char a='H';a>='A';a--,z--){
j=1;
while(j<=maxLength){
if(j>=maxLength/2-z+1 && j<=maxLength/2+z+1)System.out.print(a);
else System.out.print(" ");
j++;
}
System.out.println();
}
}
}
}
}
我的答案打印出来的结果跟你的要求是一模一样的,只不过我觉得你理解起来会十分费力,并且我这个程序还不够灵活。(就是输入一个数就可以打印出不同(对角线)长度的菱形)你要看懂我这个程序就要学会找规律。注释我就不写了吧,大概说一下规律。
每一行输出的长度都是跟9那一行的长度(17个字符长度)一样(长度包括了输出空格),第一行1位于第9(=17/2 +0+1)位输出 ,第二行的2位于17/2 -1+1 =8 到 17/2 +1 +1 = 10位输出,第三行的3位于 17/2 - 2 + 1 = 7 到 17/2 + 2 + 1 = 11位输出,以此类推。。。
还有啊,一分都不给你也忒吝啬了吧。
全部回答
public static void main(string[] args) { string[] strs = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "h", "g", "f", "e", "d", "c", "b", "a"}; int length = strs.length; int halflength = length / 2; int spacelength = 0; int showlength = 0; for (int index = 0; index < length; index++) { spacelength = index > halflength ? index - halflength : halflength - index; for (int index2 = 1; index2 <= spacelength; index2++) { system.out.print(" "); } showlength = 2 * (halflength - spacelength) + 1; for (int index3 = 1; index3 <= showlength; index3++) { system.out.print(strs[index]); } system.out.println(); } }
两种办法。一种直接用print一行一行的写出来。一种用for循环,写。
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class PrintDemo { public static void main(String[] args) { List<Character> list = new ArrayList<Character>(); for (int i = 'H'; i >= 'A'; i--) { list.add((char) i); } int i, j, k; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9 - i; j++) { System.out.print(" "); } for (k = 1; k <= 2 * i - 1; k++) { System.out.print(i); } System.out.println(""); } for (i = 1; i <= 8; i++) { for (j = 1; j <= i; j++) { System.out.print(" "); } for (k = 1; k <= 17 - 2 * i; k++) { System.out.print(list.get(i - 1)); } System.out.println(""); } } } 这是我写的代码,输出效果和你要的效果是一样的。 如果有什么不明白可以追问或者百度hi我。 希望我的解答对你有所帮助。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鼎点美业地址在什么地方,我要处理点事
集合可以用区间表示吗?
奇艺空间造型沙龙地址在哪,我要去那里办事
请问怎样分辩电子琴上的1 2 3 4 5 6 7?跪求
救命啊,小弟电脑戴尔笔记本,吸入式光驱,塞
南新发屋(望江楼街)怎么去啊,我要去那办事
吉林市到桦树林多远
有谁知道阊闼门窗,质量怎么样?
什么是生长激素实验
我2010年7月-9月因个人更换工作单位,三个月
避孕套有水果口味的是干嘛用的
北京是明朝的首都还是宋朝的首都?
小锅显示001接收器绿灯不亮是什么原因
EMany children first learn the value of mo
雍正幕里真的只有尸身吗?雍正的幕有没被盗过
推荐资讯
大众朗行汽车总成换下来多少钱
现有隋朝还是先有唐朝?
鸡絮的意思是什么啊?知道的请说下!
为什么smell有smelt和smelled两种过去式和过
煮好的沙谷米怎么娌拍懿环⒄牵恢眖q 的
放二四的意思是什么啊?知道的请说下!
哇哈哈饮用水吉辉水店地址在什么地方,想过去
我在招商银行贷款36万.20年还清利息是多少
汽车哑光漆喷涂需要注意些什么?
三角梅可在成都户外过冬吗
古希腊人在文学、戏剧、雕塑、建筑、哲学等方
慢热专一类型男生!如何攻克。我和他认识四个
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?