听一些人说平时自己多敲一敲网上的什么类似经典算法多少题多少题啊,对一些公司的笔试面试会经常碰到,我想强调一下这个所谓的碰到并不是指会碰到原题,也不一定就只是单纯的换个问法而已,而是当你做过这些练习后,并且是理解了的,在对一些笔试面试的算法题上很多都能给自己带来一个思路或者方法。如碰到某道算法题恰好可以利用之前某个算法题里解决部分问题的做法,又可以利用另外一道算法题里解决某部分问题的做法,这个是我自己有过亲身经历的。发现了这个好处之后,才有了更大的动力推动我继续去敲剩下的部分,并把敲过的拿出来分享,有些是自己写的(也就简单点的自己能单靠自己敲吧-_-!)有些是借鉴别人后修改成自己的版本(代码已经跑过的)。
在上个暑假我花时间去敲了一部分,我敲的很慢,因为我不只是单纯的在跟着网上的答案敲,而是先自己稍微能理解之后,自己试着敲出来,即使大多时候最后要借鉴别人的答案才知道具体怎么做,但至少我有去思考、去理解并自己去写一遍。即使不是自己设计出来的,但也能学到别人的设计思路吧,废话不多说了,看题.....
1、 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
自己理解的思路:从2开始往后判断整数是否能够被整除,能则输出这个因数,并且整
除后的整数是否能继续被整除,能则再输出。
这里就是单纯的循环啦,但循环的时候顺便考虑下是否能尽量减少循
环次数,这里任何一个整数除了被自己整除,最大能整除的就是自己
的1/2,所以我们的循环只需要迭代到整数的1/2就行了。
import java.util.*; public class Pro1{ public static void main(String[] args){ System.out.print("请输入一个整数:");//输入要分解的整数 int n = new Scanner(System.in).nextInt(); fenJie(n); } //分解因数 public static void fenJie(int n){ System.out.print(n+"="); for(int i=2;i<=n/2;i++){ while((i!=n) && (n%i==0)){ System.out.print(i+"*"); n=n/i; } } System.out.print(n); } }
2、题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
思路:对于这种判断的题,像if...else这样的虽然简单,但最好使用我们平时很少用的三元运算符,听说这
种写法会比较受一些面试官喜欢。
import java.util.*; public class Pro2{ public static void main(String[] args){ System.out.print("请输入一个整数:"); int n = new Scanner(System.in).nextInt(); change(n); } public static void change(int n){ String str=(n>=90?"A":(n>=60?"B":"C")); System.out.print(str); } }
3、题目:输入两个正整数m和n,求其最大公约数和最小公倍数
思路:1)首先我们先从最大公约数入手,因为最小公倍数可以利用最大公约数来计算。
2) 最大公约数下面用的是辗转相除法:首先用较大的数除以较小的数,接着将除数
当做被除数,上一次的余数作为除数,继续上一步操作,直到除数的值为0,此时
被除数就是要求的最大公约数。
3)最小公倍数等于俩整数乘积除以最大公约数。
import java.util.*; public class Pro3{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.print("请输入第一个整数:"); int m = scan.nextInt(); System.out.print("请输入第二个整数:"); int n = scan.nextInt(); maxGongyue(m,n); minGongbei(m,n); } //求最大公约数 public static void maxGongyue(int m,int n){ int max = m>n?m:n; int min = m<n?m:n; while(min != 0){ int tmp = max % min; max = min; min = tmp; } System.out.println("最大公约数是:"+max); } //求最小公倍数 public static void minGongbei(int m,int n){ System.out.println("最小公倍数是:"+(m*n /maxGongyue(m,n))); } }
4、 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
思路:1)一行字符,也就是一个字符串,要判断里面的每个字符自然是要先将字符串转换成一个一个的
字符,这里采用将字符串转换成字符数组。
2)对数组遍历,字符A - Z对应十进制65—90,a—z对应97—122,空格对应十进制32, 字符0—9对应十
进制48—57。
import java.util.*; public class Pro4{ public static void main(String[] args){ int zimu = 0,kongge = 0, shuzi = 0, other = 0; System.out.println("请输入一行字符"); String strline = new Scanner(System.in).nextLine(); char[] strChar = strline.toCharArray(); for(char c : strChar){ if((c>=65 && c<=90) || (c>=97 && c<=122)){ zimu ++; } else if(c==32){ kongge ++; } else if(c>=48 && c<=57){ shuzi ++; } else{ other ++; } } System.out.println("英文字母个数:"+zimu+",空格个数: "+kongge+",数字个数:"+shuzi+",其他字符个数:"+other); } }
5、题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共
有5个数相加),几个数相加由键盘输入。
import java.util.*; public class Pro5{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.print("输入一个整数作为基数:"); int a = scan.nextInt(); System.out.print("输入相加个数:"); int n = scan.nextInt(); int tmp = 0; long sum = 0; for(int i = 0; i<n;i++){ tmp = tmp * 10 +a; sum +=tmp; } System.out.println("最后结果是:"+sum); } }
相关推荐
适配器用于使Java虚拟机能够在不同的硬件平台上运行,而JavaOS则是一个轻量级的操作系统环境,专为Java程序设计,使得Java程序可以在其上运行。 7. **题目:** java程序的执行过程中用到一套JDK工具,其中javac.exe...
Java GUI(Graphical User Interface)编程是Java程序设计中的一种重要方向。Java GUI编程使用Swing库来构建图形用户界面。Swing库提供了许多组件,例如JButton、JLabel、JTextField等。这些组件可以用于构建复杂的...
本资源“java语言程序设计课后编程题答案答案”聚焦于Java编程的基础篇,提供了课后练习题的解决方案,帮助学习者巩固所学知识,提升编程技能。 Java编程题通常涵盖以下几个核心领域: 1. **基本语法**:包括变量...
Java是一种广泛使用的高级编程语言,以其跨平台、安全性强...总的来说,这些题目覆盖了Java程序设计的基础概念,包括语法、面向对象、数据类型、控制流、数组以及类和对象的使用,是学习和理解Java编程的良好练习材料。
Java程序设计涵盖了许多核心概念,包括: 1. **包与集合框架**:`...以上知识点覆盖了Java语言的基础语法、面向对象编程、输入输出、图形用户界面、线程管理和类的定义与使用等多个方面,是学习Java程序设计的基础。
4. JAVA 程序设计实践:资源中提供了多个 JAVA 程序设计实践题目,如编写一个 JAVA 程序在屏幕上输出“你好!”、编写一个 JAVA 程序用 `if-else` 语句判断某年份是否为闰年等,展示了如何使用 JAVA 语言来解决实际...
在JAVA语言程序设计基础篇中,编程题是学习过程中至关重要的一环。这些题目旨在帮助初学者巩固基础知识,理解和掌握JAVA编程的基本概念、语法结构以及常用数据类型和控制结构。本资料集包含了对这些基础编程题目的...
本文档提供了 Java 程序设计期中考试测试题,包括选择题、填空题和编程题。测试题涵盖了 Java 基础知识点,包括 Java 源程序编译、变量、数据类型、运算符、控制语句、方法、数组、类和对象等。 选择题部分包括 10 ...
在“JAVA语言程序设计与数据结构课后 编程题解析”这个主题中,我们可以深入探讨Java编程语言和数据结构的基础知识,以及如何通过解决课后编程题来提高编程技能。Java是一种广泛使用的面向对象的编程语言,它以其...
Java程序设计基础篇是学习Java编程的入门教材,其第六章通常涵盖了面向对象编程的核心概念。在这个章节中,学生会接触到类、对象、继承、封装和多态等关键概念。编程题是理解和掌握这些概念的重要实践环节。由于本书...
Java编程面试题集 可以自己学习下练练手
java程序设计的编程Java程序设计复习题
《Java程序设计之网络编程》是一本专注于Java网络编程的教材,它涵盖了网络通信的基础理论以及Java语言在实现网络应用中的各种技术。该资源包括课件和源码,旨在帮助学习者通过实践来深入理解Java网络编程的核心概念...
java语言程序设计课后编程题答案
6. Java 程序设计总复习题 9: 编写一个 Java 程序实现多线程,在线程中输出线程的名字,隔 300 毫秒输出一次,共输出 20 次。 经典编程程序 7. Java 程序设计总复习题 5: 编写一个 Java 应用程序,从键盘读取用户...
此外,压缩包中的“java程序设计(其中).doc”文件可能是另一份补充资料,可能包含更多的练习题、编程实例或教学材料,进一步巩固和扩展Java编程的知识。 总的来说,Java程序设计的学习是一个持续的过程,不仅需要...
Java程序设计语言是全球范围内广泛使用的编程语言,尤其在企业级应用、移动开发以及服务器端编程等领域占有重要地位。这个压缩包文件包含了2008年至2012年间的Java程序设计(一)科目的历年真题及答案,对于学习者来...
实用性:《Java程序设计习题集》每章都含有一些趣味题,营造了一种轻松而快乐的学习氛围,努力培养和提高学生的学习乐趣,同时也使学生容易产生学习成就感。 趣味性:习题基本上覆盖了程序员在编写Java程序时...