当前位置:编程学习 > JAVA >>

找错

问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。


import java.util.*;
public class Main 
{
public static void main(String[] args)
{
char s[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','p','Q','R','S','T','U','V','W','X','Y','Z'};
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
sc.close();
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
System.out.print(s[Math.abs(j-i)]);
}
System.out.println();
}
}
}

--------------------编程问答-------------------- --------------------编程问答-------------------- 这玩意就是找规律:
n行m列,A开始,往后+到m-1个字符(可以考虑用ASCII码直接加),然后这第一行为基础。
第2行,取第1行的第2个字符作为首字符,后面用第1行来补全后面的m-1个字符。
第3行,取第1行的第3个字符作为首字符,后面用第2行来补全后面的m-1个字符。
...
第x行,取第1行的第x个字符作为首字符,后面用第x-1行来补全后面的m-1个字符(1<x≤n)。

代码就不难搞定了吧 --------------------编程问答-------------------- 没有看到错阿 --------------------编程问答-------------------- 我这代码为啥在oj上只得了30分,我想知道是那部分出问题了? --------------------编程问答-------------------- 这个题目好像是蓝桥杯的练习系统的题目。这个题目中有个疑问,那就是行数n是否是n<=m。如果有n>m的情况,这个题目就可能有两种情况。 --------------------编程问答--------------------
引用 4 楼 u011670757 的回复:
我这代码为啥在oj上只得了30分,我想知道是那部分出问题了?


不需要定义数组
试试看下面这个

static void output(int n, int m) {
final char START = 'A';
for (int i = 0; i < n; ++i) {
for (int j = 0; j < i; ++j) {
System.out.print((char) (START + i - j));
}
for (int j = i; j < m; ++j) {
System.out.print((char) (START + j - i));
}
System.out.println();
}
}
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,