java,java 键盘输入矩阵一个数n,输出n*n的矩阵(正方形).例如:java 键盘输入矩阵5,输出5*5的正方形

java 算法题 输入一个数n,输出n阶矩阵为:如n=3,矩阵为:1 2 38 9 47 6 5如n=4,矩阵为:1 2 3 4 12 13 14 511 16 15 6 10 9 8 7
巧克力42334
private static void printArray(int n) {
int[][] a = new int[n][n];
int row = 0;
int col = 0;
int tempRow = 0;
int tempCol = 0;
boolean isButtom =
for (int i = 1; i = 0 && a[tempRow][col] == 0) {
row = tempR
} //尝试向右
tempCol = col + 1;
if (tempCol < n && a[row][tempCol] == 0) {
col = tempC
isButtom =
} //尝试向下
tempRow = row + 1;
if (tempRow < n && a[tempRow][col] == 0) {
row = tempR
isButtom =
} //尝试向左
tempCol = col - 1;
if (tempCol >= 0 && a[row][tempCol] == 0) {
col = tempC
isButtom =
} //尝试向上
tempRow = row - 1;
if (tempRow >= 0 && a[tempRow][col] == 0) {
row = tempR
isButtom =
for (int i = 0; i < i++) {
for (int j = 0; j < j++) {
System.out.print(a[i][j] + "\t");
System.out.println();
为您推荐:
其他类似问题
扫描下载二维码四、蛇形矩阵描述: &蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
正整数N(N不大于100)
输出一个N行的蛇形矩阵。
样例输入:5
样例输出:
12 18 21 23
11 19 20 24 25
&* 输入一个不大于100的数字,产生蛇形矩阵字符串
&* 例如输入5时,产生如下蛇形矩阵输出字符串,每个数字之间用空格分开
12 18 21 23
&* 11 19 20 24 25
&* @param number 不大于100的数字
&* @return 蛇形矩阵字符串(需要控制换行)
public String getResult(int number);程序如下:16
public static int[][] show(int num) {
int[][] ary = new int[num][num];
int start = 1;
for (int i = 1; i & 2 * i++) {
if (i &= num) {
int startPoint = i - 1;
for (int j = 0; j & j++) {
ary[startPoint--][j] = start++; // 方向都是从j=0的方向开始
int foot = num - 1;
int footEnd = i -
for (int k = 0; k & 2 * num - k++) {
if (num % 2 == 1) { // 考虑sqrt为奇数和偶数情况
if (i % 2 == 1) { // sqrt为奇数,i则为偶数
ary[foot--][footEnd++] = start++;
ary[footEnd++][foot--] = start++;
} else if (num % 2 == 0) {
if (i % 2 == 0) {
ary[foot--][footEnd++] = start++;
ary[footEnd++][foot--] = start++;
for (int i = 0; i & i++) {
for (int j = 0; j & j++) {
System.out.print(ary[i][j] + "\t");
System.out.println();
阅读(...) 评论()2.1上机练习;?基本题;1)编程观察如下输出语句:;System.out.println(&quot;在“escape”处换上各种转义字符测试输出效果;2)设有如下代码段,考虑赋值转换问题:;inta=234;byteb=a;;System.out.println(&quot;将a,b的类型以及数据进行各种替换,观察什么时候;3)编写一个程序求半径R为10
2.1 上机练习
1) 编程观察如下输出语句:
System.out.println(&hello test escape char&);
在“escape”处换上各种转义字符测试输出效果。如何实现如下输出: Hello &test&
Hello ‘\test’
2) 设有如下代码段,考虑赋值转换问题:
int a=234;
System.out.println(&a=& a &,b=& b);
将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。
3) 编写一个程序求半径R为10的圆的面积,结果保留2为有效小数。公式为:S=πR2
注:π可用Math类的常量PI表示(即Math.PI)。保留小数请查阅DecimalFormat类
1) 设有一个边长为30的等边三角形,三角形内有一个内切圆,计算除内切圆外三角形内其它部分的面积。
【提示】先算三角形面积,再计算圆的面积,其差即为结果。h是等边三角形的高,内切圆的半径r=h/3,面积s=πh?/9。
2) 调试分析以下程序的运行结果:
public class test {
public static void main(String a[]) {
int m=10,n=517;
System.out.println(n % m);
System.out.println(n / m);
System.out.println(m && 2);
System.out.println(m & n);
System.out.println(Integer.toBinaryString(m));
System.out.println(Integer.toBinaryString(m && 2));
注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算
时,注意观察二进制的数据变化规律。
2.2上机练习
1) 从键盘输入4个学生的成绩,找出最高分和最低分。
【提示】引入两个变量分别存放最高分和最低分,根据比较改变这两个变量值。
输入一个百分制分数,输出其对应的五分制成绩,包括:优、良、中、及格、不及格。
1) 设有一元二次方程如下:
试根据从键盘输入的a,b,c求解方程的根。
【提示】要考虑各种情形:一是a为0的情形,方程根为-c/b。还有就是根据判别式
Δ=b - 4ac进行判断,如果Δ.&0有两个实根;Δ=0,有一个实根;Δ&0,无实数解。
另外,求x的平方根可用Math.sqrt(x)方法。
输入某人的应纳税所得额,计算个人所得税。税率表如下:
计算公式是:应纳个人所得税税额=应纳税所得额?适用税率-速算扣除数
例:王某当月应纳税所得额6400元。则应纳个人所得税税额=5=905元。
2.3.4 上机练习
1)写一个程序输入一个整数n,输出相应三角形。例如:N=4,则三角形如下:
# ## ### ####
2) 计算算式: 1-1/2 1/3-1/4 1/5-?-1/100 3) 输出九九乘法表,格式如下:
4) 编写一个程序,用于输出Fibonacci数列的前20项。 5) 编写一个程序,输出90度以内的各度的sin()函数值。
1) 编写一个猜数的应用程序,用随机函数产生一个10到99的随机数。根据猜中使用的次数x计算得分。每次猜完给出是大于还是小于的提示。
注:得分计算办法:110-x*10 ;(其中,x为猜的次数) 2)找出1~100之间拥有除数最多的数。
【提示】在一定范围内找目标数,所以总体上是一个循环问题。对于每个被检测的数,要统计出其拥有除数的个数,这又是个循环问题,也就是在外循环内有内循环。为了求出拥有除数最多的哪个数,还涉及比较问题,所以要引入两个变量记下符合条件的这个数以及最多拥有的除数个数,在每次考察一个数的除数个数后要与最多者进行比较,从而决定是否要修改最多者。
3) 编写一个人与计算机对拿火柴的游戏程序。利用随机函数Math.random()产生火柴数量(20~50), 每次最多拿3根,拿到最后一根为胜者。
要求:游戏过程要显示火柴总数,选择谁先拿;每步要显示剩余火柴数量,以及计算机拿的数量,并提示用户输入拿多少;结束时显示谁是胜者。
【解题算法提示】
(1) 产生火柴总数(amount);
(2) 决定随先拿(whoplay:1--人, 2--计算机);
(3) 定义一个变量保存剩余火柴数量(remain)=amount ; (4) 当remain&0 循环
根据whoplay的值决定是计算机拿x根还是提示人拿x根;计算机拿时最好带有智能,人拿时要限制输入数量。
修改 whoplay的值;
修改remain的值; (5) 根据whoplay的值决定胜者
4)某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: A、B至少有一人作案; A、E、F三人中至少有两人参与作案; A、D不可能是同案犯; B、C或同时作案,或与本案无关; C、D中有且仅有一人作案;如果D没有参与作案,则E也不可能参与作案。 试编一程序,将作案人找出来。
2.4 上机练习
1) 利用求n!的方法计算 2! 4! 5!的值。分别利用递归和非递归方法实现求n!。 2) 编写根据三条边求三角形面积的方法。利用该方法求以下两个三角形面积。
(1)三条边分别为:3,4,5 (2)三条边分别为:5.3, 6.2, 8
3)从命令行参数获取两个整数,找出两个整数之间的所有素数,每行输出3个数。
1) 利用求素数的方法,就6~20之间的所有偶数验证歌德巴赫猜想:
任何一个大于6的偶数可以分解为两个素数之和。
2) 分别编写一个方法求两个整数的最大公约数和最小公倍数,输入两个整数,计算这两个整的最大公约数和最小公倍数。
2.5上机练习
1)利用随机函数产生20个学生的英语成绩存入一个数组中。
输出数组所有元素,每行输出3个数; ?
求最高分、最低分; ?
求平均成绩。
2) 产生Fibonacci数列的头20项存入一个一维数组中,按每行4个输出数组的元素。 3)
利用随机函数产生50~500之间的整数给一个6*6的矩阵赋值.
求第3行的元素之和;
求第2列的最小元素;
求主对角线上最大元素;
求数组所有元素之和。
4)利用随机函数产生36个10~30之间的整数给一个6*6的矩阵赋值.
求最大元素值,指出其在矩阵中的所有出现位置; ?
求该矩阵的转置矩阵。
5)利用数组元素间的关系输出含8行的杨辉三角形;
杨辉三角形特点:
(1)第1列元素为1,对角线元素为1;
(2)其他元素均为前一行的同一列位置元素和前一行的前一列元素之和。
1)产生20个范围为0~50之间的不重复随机整数存入到一个数组中,将数组中元素按由小到大输出,并求数组所有元素的平均值。
【提示】每产生一个整数要跟前面已产生的数进行比较,如果已存在,则不算,要重新产生,可以用一个循环来控制产生一个新数,只有产生的数未出现过,才能出循环。
2)利用随机函数产生36个随机整数给一个6*6的二维数组赋值。求出所有鞍点,鞍点的条件是该元素在所在行是最大值,在所在列是最小值。
【提示】 先找出行上最大的元素,然后在判断该元素在所在的列上是否是最小的。
3)利用排序算法将一数组按由小到大排列,输入一个数据,查找在数组中是否存在,采用“折半查找”加快查找速度。
所谓“折半查找”就是先与中间位置元素进行比较,如果小于中间位置的元素,则在其上半部的中间位置继续查找,否则在下半部的中间位置查找,该过程反复进行,直到找到或发现不存在为止。
4) 构造一个n阶方阵,方阵的大小从键盘输入,方阵的最外一圈元素为1,以后往内依次为2,3,....n。例如:
包含各类专业文献、幼儿教育、小学教育、行业资料、中学教育、专业论文、外语学习资料、各类资格考试、java经典编程题二及详细答案34等内容。 
 JAVA实验常见的经典编程题型涉及到各个考点并附带有详细答案和结果截图,全部自己编写运行通过!隐藏&& 2.1 上机练习基本题 1) 编程观察如下输出语句: System.out....  JAVA编程题全集(100题及答案)_工学_高等教育_教育专区。Java 程序设计总复习题...非常经典的JAVA编程题全... 31页 1下载券
经典的JAVA编程题全集(5... 32...  JAVA20经典编程题全集及答案 隐藏&& 【程序 1】题目:古典问题:有一对兔子,从...例如 6=1+2+3.编程 找出 1000 以内的所有完数。 public class lianxi09 { ...  java经典编程题一及答案_IT/计算机_专业资料。JAVA实验常见的经典编程题型涉及到各个考点并附带有详细答案和结果截图,全部自己编写运行通过!今日...  Java编程题经典中的经典_计算机软件及应用_IT/计算机_专业资料。Java编程题经典...(num == 1|| num==2) { num = 1; } else { for(int i=2;i&=...  Java 编程 【程序 1】 题目:古典问题:有一对兔子...Java经典编程题(附答案) 25页 免费 Java经典编程题...java经典编程题二及详细... 43页 3下载券喜欢...  42页 2财富值 JAVA程序设计习题库及答案... 67页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...  JAVA编程题全集(100题及答案) (1)_从业资格考试_资格考试/认证_教育专区。Java 程序设计总复习题 1、 使用冒泡排序 2、 实现会员注册,要求用户名长度不小于 3...  JAVA编程题全集(100题及答案)_从业资格考试_资格考试/认证_教育专区。Java 程序...对象时将半径初始化为 r (2)编写一个圆柱体类 Cylinder,它继承于上面的 ...&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
我是大学的一名学生,学的是医学专业,我会整理医学类儿科资料
&#xe602; 下载此文档
正在努力加载中...
JAVA编程题全集(题及答案).
下载积分:2500
内容提示:JAVA编程题全集(题及答案).
文档格式:DOC|
浏览次数:123|
上传日期: 22:22:05|
文档星级:&#xe60b;&#xe60b;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
JAVA编程题全集(题及答案).
官方公共微信数组习题(java)
1. 下列数组的声明有哪些是对的?错的应该怎么修改?
B. int a[] = new int[3];
a = {1,2,3,4,5};
D. int[] a = new int[3]{1,2,3};
2. 看下面的代码,写出输出的结果
public class Ex2 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
expand(a);
changeArray(a);
printArray(a);
public static void expand(int[] a){
int[] newArray = new int[a.length * 2];
System.arraycopy(a, 0, newArray, 0, a.length);
public static void changeArray(int[] a){
a[0] = 10;
public static void printArray(int[] a){
for(int i = 0; i&a. i++){
System.out.print(a[i] + "\t");
System.out.println();
请选择输出结果:
A. 10 2 3 4 5
B. 1 2 3 4 5
C. 10 2 3 4 5 0 0 0 0 0
D. 1 2 3 4 5 0 0 0 0 0
3. 写一个函数,计算一个整数数组的平均值
4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标;如果
不存在,则输出-1。
5. 给定一个数组,输出数组中的最大值和最小值
7. *给定一个数组,把这个数组中所有元素顺序进行颠倒。
8. *数组的扩容。
给定一个数组,要求写一个expand 函数,把原有数组的长度扩容一倍,并保留原有数
组原有的内容。
例如,给定一个数组int[] a = {1,2,3},则扩容之后,a 数组为:{1,2,3,0,0,0}
9. *数组的插入和删除
写两个函数,一个函数为delete 函数,声明如下:
public static void delete(int pos)
该函数表示删除数组pos 位置上的元素。
第二个函数为insert 函数,声明如下:
public static void insert(int pos, int value)
该函数表示在数组pos 位置上插入value 值。
为了能在多个函数中使用同一个数组,需要把这个数组写在函数的外面,类的里面,并
使用static 修饰。
为了方便,还应该定义一个index 变量,用来保存数组的有效元素的个数。
例如下面的代码:
public class TestInsertDelete{
static int[] a = {1,3,2,5,7}; //多个函数可以直接操作该数组
static int index = 5;
public static void main(String args[]){
delete(2); //1 3 5 7
insert(1, 4); //1 4 3 5 7
insert(0, 6); //6 1 4 3 5 7
public static void delete(int pos){
public static void insert(int pos, int value){
实现方式:
1. delete 方法:把数组pos 位后的所有元素向前移动1 位
2. insert 方法:把数组pos 位以及之后的元素向后移动1 位,然后设置value。
要注意的是,insert 时有可能需要数组扩容。
有效元素的个数的含义:对于a 数组,调用一次delete 之后,a 数组的长度不变,
长度依然为5,然而有效元素的个数为4 个。
insert 方法中,如何判断是否需要扩容:比较有效元素的个数和数组的长度,如果这
两者一致,则需要扩容。
10. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用冒泡排序对其按照
从小到大的顺序排序,然后输出结果。
11. *使用第二种算法对数组进行排序
12. *输出杨辉三角
杨辉三角如下:
杨辉三角的特点:
1. 第i 行有i 个元素
2. 每一行的第一个元素和最后一个元素都为1
3. 除了1 之外,每个元素的值,都等于上一行同位置的元素以及前一个元素的和。
1 4 6 4 1 的下一行
1 a1 a2 a3 a4 1
a1 = 4 + 1 = 5
a2 = 6 + 4 = 10
a3 = 4 + 6 = 10
a4 = 1 + 4 = 5
依次类推。
要求:读入一个整数n,输出杨辉三角的前n 行
13. *数学黑洞6174
已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数相减,重复
这个过程,最多七步,
必得6174。即:74。将永远出不来。
求证:所有四位数数字(全相同的除外),均能得到6174。输出掉进黑洞的步数。
14. *筛选法求质数:输入一个整数n,求小于这个整数的所有质数。
算法:定义一个长度为n 的boolean 数组,true 表示是质数,false 表示不是质数。初始
均为true。之后从2 开始循环:
1. 找到第一个值为true 的下标i
2. 把所有下标为i 的倍数的值置为false。
直到扫描完数组中的所有数值。
最后遍历数组,如果下标i 的值为true,则说明i 为质数。
15. **定义一个奇数阶二维数组,把每个元素顺序填入不同的自然数,要求行列和对角线元素
相加的结果相等
1. 第一个数字填在第一行正中间
2. 如果可以填在斜上方,则数字尽量填在斜上方
3. 如果斜上方出了上边界,则数字填入同一列最下端
4. 如果斜上方出了右边界,则数字填入同一行最左端
5. 如果既出了右边界,又出了上边界,则数字填入上一个数字的下方
6. 如果斜上方已经被填过,则数字填入上一个数字的下方。
要求:读入一个奇数n,按照上述规则,输出n*n 的方阵。
16. **十五个猴子围成一圈选大王,依次1-7 循环报数,报到7 的猴子被淘汰,直到最后一
只猴子成为大王。问,哪只猴子最后能成为大王?
17. **螺旋填数
读入两个整数m,n,输出一个m 行n 列的矩阵,这个矩阵是1~m*n 这些自然数按照右、
下、左、上螺旋填入的结果。
例如:读入4, 5,
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
18.有偶数支足球队进行单循环比赛,请按照指定算法打印每轮的对阵形势
算法:数组元素的轮换偶数个球队足球比赛,每个队和每个队有且只有一场比赛,把数字按"U"字型摆放,左边最上边的数字不变,其他数字按逆时针旋转.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 java 输入字符矩阵 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信