//模拟矩阵旋转的问题
public class TTT {
public static void main(String[] args){
//RC就是行列数,试试5 6 7 10等数值,都能正确输出,呵呵~~
int rc = 4;
int[][] dat = new int[rc][rc];
int count = 0;
//初始化数据
for(int i=0; i<rc; i++){
for(int j=0; j<rc; j++){
dat[i][j]=-1;
}
}
while(notFinished(dat,rc)){
for(int i=0; i<rc; i++){
int jj = -1;//存放未被填充数据的行
for(int j=0; j<rc; j++){
if(dat[j][i]==-1){
jj = j;break;
}
}
//找到了未填充的行在这里处理
if(jj>-1){
while(i<rc && dat[jj][i]==-1){
dat[jj][i++]=++count;
}
dat = rotate(dat,rc);
}
}
}
//这里是修正起始位置的
if(rc%2==1){
for(int i=0; i<3; i++)
dat = rotate(dat,rc);
}
else{
dat = rotate(dat,rc);
}
//打印结果
for(int i=0; i<rc; i++){
for(int j=0; j<rc; j++){
System.out.print(dat[i][j]+"\t");
}
System.out.println("\n");
}
}
//对临时结果做逆时针90度旋转
private static int[][] rotate(int[][] dat,int rc){
int[][] tmp = new int[rc][rc];
for(int i=0; i<rc; i++){
for(int j=0; j<rc; j++){
int t = dat[i][j];
tmp[rc-j-1][i]=t;
}
}
return tmp;
}
private static boolean notFinished(int[][] dat,int rc) {
for(int i=0; i<rc; i++){
for(int j=0; j<rc; j++)
if(dat[i][j]==-1)
return true;
}
return false;
}
}
2009年6月10日 09:04
相关推荐
- **数据类型**: Java分为基本数据类型和引用数据类型,理解它们的区别是基础。 - **类与对象**: Java是一种面向对象的语言,理解类的定义、构造器、封装、继承和多态性至关重要。 - **内存管理**: 讨论堆栈和堆...
首先,我们需要了解Java的基础知识。Java是一种跨平台的、面向对象的编程语言,它的“一次编写,到处运行”特性使得程序可以在不同的操作系统上运行。在Java扫雷项目中,主要涉及以下几个关键概念: 1. **面向对象...
"java基础代码实例_1"这个压缩包文件显然是一份专门为初学者准备的Java学习资源,旨在帮助他们快速掌握Java编程的基础。 首先,Java基础代码实例是学习过程中的关键部分。通过编写和运行实际的代码,学习者可以更好...
总的来说,Java作为一门广泛应用于各领域的编程语言,其基础知识涵盖了从入门到高级的各种概念和技术,无论你是初学者还是经验丰富的开发者,都能在Java的世界里找到挑战和机遇。通过深入学习和实践,你可以掌握开发...
Java基础教程是初学者入门编程世界的一把钥匙,它涵盖了编程的基本概念以及Java语言的核心特性。这份PDF教程旨在提供一个全面而深入的学习路径,让你能够快速掌握Java编程的基础。 首先,我们从第1章“Java语言基础...
1. Java基础:教程首先会介绍Java的基础知识,包括语法、变量、数据类型、运算符、控制结构(如if语句、for循环、while循环)以及方法的定义和调用。这些是编写任何Java程序的基础,理解和掌握它们至关重要。 2. 类...
"Java基础练习40题"是一个很好的资源,可以帮助初学者巩固和深化对Java的理解。这份练习涵盖了从基础语法到面向对象编程的各种概念,通过40个不同难度的题目,全面检验学习者在Java编程上的技能。 首先,100-109....
### Java基础及入门 在探讨Java基础及入门之前,我们首先需要澄清一点,即标题与描述中的混淆。标题提到的“java基础及入门”显然指的是Java编程语言的基础知识和入门指南,而描述中却提到了“很好的介绍,很实用...
Java编程语言是软件开发领域的重要组成部分,尤其对于初学者来说,掌握Java基础知识是至关重要的。本文将深入探讨Java的学习入门,分享一些实用的学习经验和技巧。 首先,了解Java的基础概念是开始学习的第一步。...
### Java基础知识教程讲义知识点概览 #### 一、Java的起源与发展背景 - **Java与计算机语言进化的关系**:Java的出现被视为计算机语言发展史上的一次重要变革,其背后有着深厚的背景故事。从B语言到C语言再到C++...
Java笔试题大全主要涵盖了几大核心领域,包括Java基础知识、EJB、代码与编程实践、线程编程以及针对各大公司的具体面试题目。这些文件旨在帮助准备Java相关职位的求职者全面复习并提升自己的技能。 首先,Java基础...
随着多核处理器的普及,理解和掌握并发编程已经成为每个Java开发者必须面对的挑战,这本书为解决这一问题提供了宝贵的理论与实践经验。 通过阅读这些书籍,你可以从理论到实践,全面掌握Java编程的各个环节,无论是...
【JAVA零基础学习】 在IT领域,Java编程语言以其跨平台、面向对象的特性而备受推崇,成为初学者和专业人士的首选。对于那些没有编程基础的人来说,"JAVA零基础学习"是一个理想的起点,通过系统的学习,你可以从零...
这个"JAVA基础项目视频+源码"资源提供了一种互动的学习方式,帮助初学者通过实际操作来掌握Java基础知识。下面,我们将深入探讨Java语言的核心概念以及在实际项目中应用这些知识的方法。 1. **Java语言基础**: - ...
因此,掌握扎实的Java基础知识对于学习Android开发至关重要。以下从Java的历史背景、语言特性以及编程环境搭建等方面,详细讲解了相关的知识点。 ### Java的诞生及其发展背景 Java作为一种广泛流行和使用的面向...
这50道Java基础编程题覆盖了多种核心概念,旨在帮助初学者巩固和提升编程技能。 1. **数据类型与变量**:理解Java的原始数据类型(如int, double, boolean等)以及它们的存储需求和用法。变量是程序中存储信息的...
【JAVA基础编程练习题详解】 在Java编程学习过程中,通过解决各类练习题是提升技能的有效方式。本篇文章将深入解析50道JAVA基础编程练习题中的几道典型题目,包括打印杨辉三角形、兔子问题(斐波那契数列)、素数...
以上就是Java基础题挑战中涉及的知识点,包括类的修饰符、类声明、类型比较、数据库操作、代码执行顺序、Web应用中的数据共享、方法覆盖、接口与抽象类的区别、继承与方法调用以及阻止继承的关键字等。熟悉并掌握...