1、 编写一个Java Application程序,循环打印如下图型:
提示:可以将一个整数看成是ASCII码,转换为对应的字符。如:(char)65à得到ASCII码65对应的字符“A”...
提示:可以将一个整数看成是ASCII码,转换为对应的字符。如:
(char)65 à 得到ASCII码65对应的字符“A” 展开
(char)65 à 得到ASCII码65对应的字符“A” 展开
展开全部
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我。
希望我的解答对你有所帮助。
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我。
希望我的解答对你有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test {
/**
* @param args
*/
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位输出,以此类推。。。
还有啊,一分都不给你也忒吝啬了吧。
/**
* @param args
*/
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位输出,以此类推。。。
还有啊,一分都不给你也忒吝啬了吧。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种办法。一种直接用print一行一行的写出来。一种用for循环,写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太蛋疼 去找星号打菱形的例子自己改吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询