java50道经典逻辑题

合集下载

JAVA经典算法50题(3)【面试+工作】

JAVA经典算法50题(3)【面试+工作】

JAVA经典算法50题(3)【面试+工作】JAVA经典算法50题(3)【面试+工作】【程序21】题目:求1+2!+3!+...+20!的和。

1.程序分析:此程序只是把累加变成了累乘。

public class Demo21 {public static void main(String[] args) {long sum = 0;long fac = 1;for (int i = 1; i <= 20; i++) {fac = fac * i;sum += fac;}System.out.println(sum);}}【程序22】题目:利用递归方法求5!。

1.程序分析:递归公式:f(n)=f(n-1)*4!import java.util.Scanner;public class Demo22 {public static long fac(int n) {long value = 0;if (n == 1 || n == 0) {value = 1;} else if (n > 1) {value = n * fac(n - 1);}return value;}public static void main(String[] args) {System.out.println("请输入一个数:");Scanner in = new Scanner(System.in);int n = in.nextInt();System.out.println(n + "的阶乘为:" + fac(n));}}【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。

问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。

java基础50道经典练习题及答案

java基础50道经典练习题及答案

java基础50道经典练习题及答案《Java基础50道经典练习题及答案》Java作为一种广泛应用于软件开发的编程语言,对于初学者来说,掌握其基础知识是非常重要的。

为了帮助大家更好地学习和掌握Java基础知识,我们整理了50道经典的练习题及答案,希望能够帮助大家更好地理解和掌握Java编程。

1. 请写出Java中的8种基本数据类型。

2. 什么是Java中的包(package)?3. Java中的“==”和“equals()”有什么区别?4. 什么是Java中的多态(polymorphism)?5. 请写出Java中的四种访问修饰符及其作用。

6. 什么是Java中的接口(interface)?7. 请写出Java中的四种循环语句。

8. 什么是Java中的异常处理(exception handling)?9. Java中的“String”和“StringBuffer”有什么区别?10. 请写出Java中的三种注释方式。

这些练习题涵盖了Java基础知识的各个方面,包括数据类型、包、运算符、多态、访问修饰符、接口、循环语句、异常处理、字符串处理等内容。

通过做这些练习题,可以帮助大家更好地理解和掌握Java编程的基础知识。

在学习Java编程的过程中,不仅要掌握理论知识,还要多做练习,多动手实践。

只有通过实际操作,才能更好地理解和掌握Java编程的各种知识点。

希望大家能够认真对待这些练习题,多加练习,相信一定能够取得不错的成绩。

最后,希望大家在学习Java编程的过程中,保持耐心和坚持,相信通过不懈的努力,一定能够掌握好Java编程的基础知识,成为一名优秀的Java程序员。

祝大家学习进步,早日掌握Java编程!。

java逻辑推理题

java逻辑推理题

以下是一个简单的逻辑推理题:
在一个岛上,有两位渔夫,分别叫做A 和B。

他们各自每天都会出海捕鱼。

这个岛的海洋里有两种鱼,分别叫做大鱼和小鱼。

现在的情况是:A 可以捕到大鱼,B 可以捕到小鱼。

但是,如果A 想捕到小鱼,他就需要B 的帮助;同样,如果B 想捕到大鱼,他也需要A 的帮助。

如果 A 和 B 都想改变他们每天的捕鱼种类(也就是说,A 想要每天捕小鱼,B 想要每天捕大鱼),那么他们应该如何做才能达到他们的目标呢?
提示:他们需要制定一个计划,按照这个计划轮流进行捕鱼。

java思维逻辑题

java思维逻辑题

java思维逻辑题
1. 编写java程序,输出1到100的所有偶数。

2. 编写java程序,计算1到100的所有奇数的和。

3. 编写java程序,找出一个数组中的最大值。

4. 编写java程序,找出一个数组中的最小值。

5. 编写java程序,将一个整数数组按照从小到大的顺序进行排序。

6. 编写java程序,判断一个字符串是否是回文字符串(正着读和反着读都相同)。

7. 编写java程序,统计一个字符串中某个字符出现的次数。

8. 编写java程序,计算一个整数的阶乘。

9. 编写java程序,判断一个字符串是否是有效的邮箱地址。

10. 编写java程序,找出两个数组中的所有相同元素。

1/ 1。

java 逻辑题

java 逻辑题

java 逻辑题逻辑题是一种通过推理和思考来解决问题的问题类型。

Java是一种面向对象的编程语言,具有强大的编程能力和丰富的库函数。

在Java中,我们可以使用条件语句、循环语句以及逻辑运算符来解答逻辑题。

下面是一些关于Java逻辑题的参考内容。

1. 条件语句:条件语句是根据条件的真假来执行不同的代码块。

在Java中,主要有if语句和switch语句来实现条件判断。

(1)if语句示例:```int x = 10;if (x > 0) {System.out.println("x是正数");} else if (x < 0) {System.out.println("x是负数");} else {System.out.println("x是零");}```(2)switch语句示例:```int day = 3;String dayName;switch (day) {case 1:dayName = "星期一";break;case 2:dayName = "星期二";break;case 3:dayName = "星期三";break;case 4:dayName = "星期四";break;case 5:dayName = "星期五";break;default:dayName = "未知";break;}System.out.println("今天是" + dayName);```2. 循环语句:循环语句是根据条件来重复执行一段代码块。

在Java中,主要有for循环、while循环和do-while循环来实现循环结构。

(1)for循环示例:```for (int i = 1; i <= 10; i++) {System.out.println("当前数字:" + i);}```(2)while循环示例:```int i = 1;while (i <= 10) {System.out.println("当前数字:" + i);i++;}```(3)do-while循环示例:```int i = 1;do {System.out.println("当前数字:" + i);i++;} while (i <= 10);```3. 逻辑运算符:逻辑运算符用于结合多个布尔表达式的结果。

java基础50道经典练习题及答案

java基础50道经典练习题及答案

java基础50道经典练习题及答案Java基础50道经典练习题及答案Java作为一门广泛应用于软件开发领域的编程语言,其基础知识的掌握对于程序员来说至关重要。

为了帮助大家更好地理解和掌握Java的基础知识,下面将介绍50道经典的Java练习题及其答案。

1. 编写一个Java程序,打印输出"Hello, World!"。

```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```2. 编写一个Java程序,计算并打印输出1到100之间所有偶数的和。

```javapublic class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}System.out.println("Sum of even numbers: " + sum);}}```3. 编写一个Java程序,判断一个整数是否为素数。

```javapublic class PrimeNumber {public static void main(String[] args) {int number = 17;boolean isPrime = true;for (int i = 2; i <= Math.sqrt(number); i++) {if (number % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(number + " is a prime number.");} else {System.out.println(number + " is not a prime number."); }}```4. 编写一个Java程序,将一个字符串反转并输出。

java逻辑题

java逻辑题

java逻辑题100道java经典逻辑题java逻辑题【1】假设有一个池塘,里面有无穷多的水。

现有2个空水壶,容积分别为5升和6升。

问题是如何只用这2个水壶从池塘里取得3升的水。

由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1升水,因此6只能向5倒4升水,然后将6剩余的2升,倒入空的5里面,再灌满6向5里倒3升,剩余3升。

【2】周雯的妈妈是豫林水泥厂的化验员。

一天,周雯来到化验室做作业。

做完后想出去玩。

&quot;等等,妈妈还要考你一个题目,&quot;她接着说,&quot;你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。

你能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来吗?&quot;爱动脑筋的周雯,是学校里有名的&quot;小机灵&quot;,她只想了一会儿就做到了。

请你想想看,&quot;小机灵&quot;是怎样做的?设杯子编号为ABCDEF,ABC为满,DEF为空,把B中的水倒进E中即可。

【3】三个小伙子同时爱上了一个姑娘,为了决定他们谁能娶这个姑娘,他们决定用手枪进行一次决斗。

小李的命中率是30%,小黄比他好些,命中率是50%,最出色的枪手是小林,他从不失误,命中率是100%。

由于这个显而易见的事实,为公平起见,他们决定按这样的顺序:小李先开枪,小黄第二,小林最后。

然后这样循环,直到他们只剩下一个人。

那么这三个人中谁活下来的机会最大呢?他们都应该采取什么样的策略?小林在轮到自己且小黄没死的条件下必杀黄,再跟菜鸟李单挑。

所以黄在林没死的情况下必打林,否则自己必死。

小李经过计算比较(过程略),会决定自己先打小林。

于是经计算,小李有873/2600≈33.6%的生机;小黄有109/260≈41.9%的生机;小林有24.5%的生机。

哦,这样,那小李的第一枪会朝天开,以后当然是打敌人,谁活着打谁;小黄一如既往先打林,小林还是先干掉黄,冤家路窄啊!最后李,黄,林存活率约38:27:35;菜鸟活下来抱得美人归的几率大。

java逻辑思维编程题

java逻辑思维编程题

java逻辑思维编程题当涉及到Java编程的逻辑思维题时,有许多不同的问题和情景可以讨论。

下面,我将从不同的角度给出一些常见的Java逻辑思维编程题的回答。

1. 反转字符串:编写一个Java程序,将给定的字符串进行反转。

可以使用StringBuilder或者字符数组来实现。

首先,将字符串转换为字符数组,然后使用双指针法从两端开始交换字符,直到达到中间位置。

2. 判断回文数:编写一个Java程序,判断一个给定的整数是否是回文数。

可以将整数转换为字符串,然后使用双指针法从两端开始比较字符,直到达到中间位置。

如果所有字符都匹配,则该整数是回文数。

3. 查找最大值和最小值:编写一个Java程序,从给定的整数数组中找到最大值和最小值。

可以使用两个变量来保存当前的最大值和最小值,然后遍历整个数组,逐个比较并更新最大值和最小值。

4. 斐波那契数列:编写一个Java程序,生成斐波那契数列的前n个数字。

可以使用循环或者递归来实现。

如果使用循环,可以使用两个变量来保存前两个数字,然后通过迭代生成后续的数字。

如果使用递归,可以编写一个递归函数来计算斐波那契数列。

5. 查找重复元素:编写一个Java程序,从给定的整数数组中查找重复的元素。

可以使用一个HashSet来存储已经访问过的元素,然后遍历整个数组,对于每个元素,如果HashSet中已经存在,则说明是重复元素。

6. 验证括号匹配:编写一个Java程序,验证一个给定的字符串中的括号是否匹配。

可以使用栈的数据结构来实现。

遍历字符串的每个字符,如果是左括号,则将其压入栈中;如果是右括号,则弹出栈顶元素并进行匹配。

最后,如果栈为空,则说明所有括号都匹配。

以上是一些常见的Java逻辑思维编程题的回答。

希望这些回答能够帮助到你。

如果你有其他问题,欢迎继续提问。

java逻辑思维题

java逻辑思维题

java逻辑思维题含详解共5道1. 题目:翻转字符串编写一个Java 函数,接受一个字符串作为输入,并返回该字符串的反转版本。

```javapublic class ReverseString {public static String reverse(String input) {char[] chars = input.toCharArray();int start = 0, end = chars.length - 1;while (start < end) {char temp = chars[start];chars[start] = chars[end];chars[end] = temp;start++;end--;}return new String(chars);}public static void main(String[] args) {String original = "Hello, World!";String reversed = reverse(original);System.out.println("Original: " + original);System.out.println("Reversed: " + reversed);}}```详解:该程序使用双指针法,从字符串的两端开始,依次交换字符,直到两个指针相遇。

这样就能够得到字符串的反转版本。

2. 题目:判断回文数编写一个Java 函数,判断一个整数是否是回文数。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

```javapublic class PalindromeNumber {public static boolean isPalindrome(int number) {String str = String.valueOf(number);return str.equals(new StringBuilder(str).reverse().toString());public static void main(String[] args) {int num1 = 121;int num2 = -121;System.out.println(num1 + " is palindrome: " + isPalindrome(num1));System.out.println(num2 + " is palindrome: " + isPalindrome(num2));}}```详解:该程序将整数转换为字符串,然后比较正序和倒序的字符串是否相等,从而判断是否是回文数。

50道经典Java逻辑编程题

50道经典Java逻辑编程题

【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:(a> b)?a:b这是条件运算符的基本例子。

【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句,条件为输入的字符不为'\n '.【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

最新JAVA编程题全集(50题及答案)

最新JAVA编程题全集(50题及答案)

【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

JAVA经典算法50题

JAVA经典算法50题

JAVA经典算法41题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?前二十1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class Demo01 {public static void main(String args[]) {int i = 0;for (i = 1; i <= 20; i++)System.out.println(f(i));}public static int f(int x) {if (x == 1 || x == 2)return 1;elsereturn f(x - 1) + f(x - 2);}}或public class Demo02 {public static void main(String args[]) {int i = 0;math mymath = new math();for (i = 1; i <= 20; i++)System.out.println(mymath.f(i));}}class math {public int f(int x) {if (x == 1 || x == 2)return 1;elsereturn f(x - 1) + f(x - 2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class Demo03 {public static void main(String args[]) {int i = 0;math mymath = new math();for (i = 2; i <= 200; i++)if (mymath.iszhishu(i) == true)System.out.println(i);}}class math {public int f(int x) {if (x == 1 || x == 2)return 1;elsereturn f(x - 1) + f(x - 2);}public boolean iszhishu(int x) {for (int i = 2; i <= x / 2; i++)if (x % i == 0)return false;return true;}}【程序3】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

java面试逻辑思维

java面试逻辑思维

java面试逻辑思维
逻辑思维题
1.两个不同长度得蜡烛都能燃烧一小时但是怎么样才确定四十五分钟?
把其中一支蜡烛烧两头,另一支只烧一头,同时烧。

当烧两头的蜡烛烧完时就是30分钟,这个时候弄熄只烧一头的那支蜡烛,便得到一支只能烧30分钟的蜡烛。

如果我们拿这支只能烧30分钟的蜡烛同时烧两头,当蜡烛烧完时就是15分钟了。

2.有两个杯子一个是7两一个是11两怎么算出2两来?
用七两的杯子装五次,每次都倒到11两的杯子中。

当11两的装满后就倒掉(一共用倒三次)。

这样装了35两,倒掉了33两,就出来2两了。

3.有三个人买来一桶油共重24两,现在三人要均分。

现有三个杯子,一个能装5两,一个能装11两,一个能装13两,如和均分?
(1)先把这桶油倒满能装13两的杯子里;
(2)其次,把装满13两油的杯子里的油倒入能装5两的杯子里,倒满;
(3)再把13两杯子里剩下的油倒入装11两的杯子里,正好是8两,给一个人。

(4)重复一、二步,13两杯子里剩下的油正好是8两,给另一个人。

(5)桶内剩余8两油给第三个人。

4、某女的弟弟的兄弟比姐妹多一个,问此女兄弟比姐妹多几个?
设那个女的的弟弟有N个姐妹,则兄弟就是N+1个,对不?然后呢,那个女的就是N+2个兄弟对不(因为又加上了弟弟),而姐妹就只有N-1个了对不(因为要减去她自己)。

所以(N+2)-(N-1)=3.
5、某人花了8元买了一只鸡,再以9元将其卖出,后来他觉得不妥,于是花了10元把那只鸡买回,再以11元将其卖掉,问他赚了赔了?。

500道java经典笔精彩试题和问题详解

500道java经典笔精彩试题和问题详解

【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}【程序3】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

Java基础编程练习题(50题及答案)2017

Java基础编程练习题(50题及答案)2017

2017年Java基础编程经典练习题50道【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

java逻辑面试题及答案

java逻辑面试题及答案

java逻辑面试题及答案在Java开发领域,逻辑面试题是常见的考察方式。

本文将为大家介绍一些常见的Java逻辑面试题,并提供详细的答案和解析。

通过学习和掌握这些面试题,希望能帮助读者在面试中更加自信和准确地回答问题。

1. 如何实现Java中的单例模式?单例模式用于确保一个类只有一个实例,并提供全局访问点。

常见的实现方式有饿汉式和懒汉式两种。

饿汉式在类加载时就创建实例,代码如下:```public class Singleton {private static final Singleton instance = new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;}}```懒汉式在第一次使用时才创建实例,代码如下:```public class Singleton {private static Singleton instance;private Singleton() {}public static Singleton getInstance() {if (instance == null) {synchronized(Singleton.class) {if (instance == null) {instance = new Singleton();}}}return instance;}}```2. 什么是Java中的多态性?如何实现多态性?多态性是指同一个方法名可以被不同的对象所调用,实现了方法的重用和扩展性。

在Java中,多态性通过继承和接口实现。

首先,需要定义一个父类或接口,然后由子类继承父类或实现接口。

父类或接口中的方法可以被子类重写,从而实现不同的行为。

示例代码如下:```public class Animal {public void makeSound() {System.out.println("Animal makes sound");}}public class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}}public class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("Cat meows");}}public class Main {public static void main(String[] args) {Animal animal1 = new Dog();Animal animal2 = new Cat();animal1.makeSound();animal2.makeSound();}}```输出结果为:```Dog barksCat meows```3. Java中的异常处理机制是如何工作的?Java中的异常处理机制通过try-catch-finally语句块来实现。

50道经典Java逻辑编程题

50道经典Java逻辑编程题

题目:古典问题:有一对兔子‎,从出生后第‎3个月起每‎个月都生一‎对兔子,小兔子长到‎第三个月后‎每个月又生‎一对兔子,假如兔子都‎不死,问每个月的‎兔子总数为‎多少?1.程序分析:兔子的规律‎为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101‎-200之间‎有多少个素‎数,并输出所有‎素数。

1.程序分析:判断素数的‎方法:用一个数分‎别去除2到‎s qrt(这个数),如果能被整‎除,则表明此数‎不是素数,反之是素数‎。

【程序3】题目:打印出所有‎的"水仙花数",所谓"水仙花数"是指一个三‎位数,其各位数字‎立方和等于‎该数本身。

例如:153是一‎个"水仙花数",因为153‎=1的三次方‎+5的三次方‎+3的三次方‎。

1.程序分析:利用for‎循环控制1‎00-999个数‎,每个数分解‎出个位,十位,百位。

【程序4】题目:将一个正整‎数分解质因‎数。

例如:输入90,打印出90‎=2*3*3*5。

程序分析:对n进行分‎解质因数,应先找到一‎个最小的质‎数k,然后按下述‎步骤完成:(1)如果这个质‎数恰等于n‎,则说明分解‎质因数的过‎程已经结束‎,打印出即可‎。

(2)如果n <> k,但n能被k‎整除,则应打印出‎k的值,并用n除以‎k的商,作为新的正‎整数你n,重复执行第‎一步。

(3)如果n不能‎被k整除,则用k+1作为k的‎值,重复执行第‎一步。

【程序5】题目:利用条件运‎算符的嵌套‎来完成此题‎:学习成绩> =90分的同‎学用A表示‎,60-89分之间‎的用B表示‎,60分以下‎的用C表示‎。

1.程序分析:(a> b)?a:b这是条件‎运算符的基‎本例子。

【程序6】题目:输入两个正‎整数m和n‎,求其最大公‎约数和最小‎公倍数。

1.程序分析:利用辗除法‎。

【程序7】题目:输入一行字‎符,分别统计出‎其中英文字‎母、空格、数字和其它‎字符的个数‎。

java基础50道经典练习题及答案(word文档良心出品)

java基础50道经典练习题及答案(word文档良心出品)

沃克IT教育JAVA基础编程练习题整理:Lemon 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如6=1+2+3.编程找出1000以内的【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,【程序11】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

Java笔试逻辑题

Java笔试逻辑题

Java笔试逻辑题Java笔试逻辑题Java笔试逻辑题由店铺收集整理,欢迎学习!更多内容请关注店铺!Java笔试逻辑题:1.一个11L的杯子一个7L的杯子怎么量出2L的水?解析:11L装满,往7L的倒,把7L倒满,剩4L,吧7L的倒空;4L倒进7L里,11L装满再往7L倒,倒满,剩8L;7L清空,8L倒进去,得到1L;1L和7L得到6L;6L和11L得到5L;5L和7L得到2L。

反过来在 7L里装满往 11L里倒,道理是一样的!同类题比较:假设有一个池塘,里面有无穷多的水。

现有2个空水壶,容积分别为5升和6升。

问题是如何只用这2个水壶从池塘里取得3升的水。

2.飞机问题每架飞机只有一个油箱,一箱油可以飞地球半圈。

飞机间可以相互加油,所有飞机从同一个机场起飞。

要想使一架飞机安全飞地球一圈,回到起飞的机场。

需要至少出动几架飞机。

解析:6架足矣。

3架飞机A、B、C同时起飞,同向而行。

飞至1/8航程(绕地球一周)处,正好耗去1/4燃油,其中1架飞机A将2×1/4油箱燃油分加至的飞机B、C油箱中,然后带1/4燃油正好能安全返航。

此时飞机B、C油箱是满的。

剩下2架飞机继续飞行1/8航程,也就是1/4航程处,此时飞机B、C还有3/4油箱的燃油。

飞机B将1/4油箱的.燃油加至飞机C,飞机B剩下1/2油箱燃油返航,飞机C为满油箱,继续做环球飞行,能飞至3/4航程处。

飞机C飞至1/2航程处,由同一机场同时起飞3架飞机D、E、F,与飞机A、B、C反方向飞行。

飞机D、E、F逆向飞行1/8航程时,飞机D将2×1/4油箱燃油分加至飞机E、F中返航,飞机E、F为满油箱,再向前1/8航程,也就是逆向的1/4航程、正向的3/4航程处,正好与做环球飞行的飞机C汇合,飞机C燃油已耗尽,飞机E、F都还有3/4油箱燃油,两飞机分别将1/4油箱燃油加给飞机C,并同飞机C一起返回机场,此时飞机C、E、F同为1/2油箱燃油,正好能飞完剩下的1/4航程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?【程序1】題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?分析:咋一看不知道如何下手,但是你在草稿纸上写写分析一下,就很快发现其中的规律了package logic; import java.util.Scanner; public class RabbitNum { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("你想知道前几个月的兔子的数量"); int month = in.nextInt(); int[] mon = new int[month]; if(month < 3){ System.out.println("第" + month + "个月有1 对兔子,共2 只"); } else for(int i = 2; i < month; i++){ mon[0] = mon[1] = 1; mon[i] = mon[i - 1] + mon[i - 2]; System.out.printf("第%d 个月有%d 对兔子,共%d 只兔子\n", i + 1, mon[i], 2 * mon[i]); } } }【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

分析:如果知道素数是什么,该题就应该不难了package logic; public class Prime { public static void main(String[] args) { System.out.print("101--200中的素数有:"); for(int i = 101; i <= 200; i++){ if(isPrime(i)) System.out.print(" " + i); } } //isPrime方法用来判断一个数是否是素数private static boolean isPrime(int i) { // TODO Auto-generated method stub for(int j = 2; j <= Math.sqrt(i); j++){ if(i % j == 0) return false; } return true; } }【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

分析:解决这个题目主要要知道怎么把一个数的各个位上的数拆分出来package logic; import java.util.Scanner; public class NarcissisticNum { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("水仙花数有:"); for(int num = 100; num < 1000; num++){ if(isNarcissisticNum(num)) System.out.println(" " + num); } } //一个判断正整数是否为水仙花数的方法private static boolean isNarcissisticNum(int num) { // TODO Auto-generated method stub int a = num / 100; //分离出百位a int b = (num / 10) % 10; //分离出十位b int c = num % 10; //分离出个位 c int sum = a * a * a + b * b * b + c * c * c; if(sum == num) return true; else return false; } }【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

分析:按步骤实现就可以了(有多种实现方式,以下代码供参考。

我也参考了别人的)package logic; import java.util.Scanner; public class PrimeFactorOfInteger { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个大于 3 的正整数"); int num = input.nextInt(); System.out.print(num + "的素因数:"); factor(num); } private static void factor(int num) { // TODO Auto-generated method stub for(int i = 2; i <= Math.sqrt(num); i++){ if(num % i == 0){ System.out.print(i + " * "); if(isPrime(num / i)){ System.out.println(num / i); } else factor(num / i); break; } } } private static boolean isPrime(int i) { // TODO Auto-generated method stub for(int j = 2; j <= Math.sqrt(i); j++){ if(i % j == 0) return false; } return true; } }【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

分析:这题应该是最简单的吧package logic; import java.util.Scanner; public class ConditionalOperator { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入你的分数"); int score = in.nextInt(); if(score >= 90){ System.out.println("A 恭喜"); } else if(score >= 60){ System.out.println("B 不错"); } else{ System.out.println("C 加油"); } } }【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

分析:需要了解求最大公约数和最小公倍数的方法package logic; import java.util.Scanner; public class Example6 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入第一个数"); int a = in.nextInt(); System.out.println("请输入第二个数"); int b = in.nextInt(); System.out.println("这两个数的最大公约数是" + MaxCommonDivisor(a, b)); System.out.println("这两个数的最小公倍数是" + MinCommonMultiple(a, b)); } private static int MaxCommonDivisor(int a, int b) { // TODO Auto-generated method stub if(a < b){ int temp = a; a = b; b = temp; } while(a % b != 0){ int temp = a % b; a = b; b = temp; } return b; } private static int MinCommonMultiple(int a, int b) { // TODO Auto-generated method stub return a * b / MaxCommonDivisor(a, b); } }【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

分析:这题也比较简单,知道怎么表示字母、空格、数字就OKpackage logic; import java.util.Scanner; public class Statistic { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Input one sentance."); String s = in.nextLine(); int letter = 0, symbol = 0, space = 0, number = 0; char[] strArray = s.toCharArray(); for (int i = 0; i < strArray.length; i++) { char c = strArray[i]; if((&#39;a&#39; <= c && c <= &#39;z&#39;) || (&#39;A&#39; <= c && c <= &#39;Z&#39;)) letter++; else if(48 <= c && c <= 57) //注意!数字0-9的ASCII码是48-57 number++; else if(c == &#39; &#39;) space++; else symbol++; } System.out.println("This sentance have " + letter + " letters, "); System.out.println("have "+ number + " numbers, "); System.out.println("have " + space + " spaces, " + "and " + symbol + " symbols."); } }【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

相关文档
最新文档