java50道经典编程题
文章平均质量分 62
Oceanst_God
此人偷懒没写签名,只想写代码
展开
-
Java50道经典编程题:(五十)学生信息管理 ——文件流操作
1.问题重述题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。2.解析使用简单的IO流文件操作,计算好后存入其中即可。3.解决问题代码如下:import java.io.BufferedReader;import java.io.BufferedWriter;i...原创 2019-02-09 21:11:19 · 1283 阅读 · 2 评论 -
Java50道经典编程题:(二十一)阶乘之和 ——循环结构的使用
1.问题重述题目:求1+2!+3!+…+20!的和2.解析使用好for循环,即可解决问题,一个for循环用来计算和,一个for循环用来计算阶乘的结果,注意循环的次数就可以轻松解决。3.解决问题代码如下:public class demo { public static void main(String[] args) { //计算和 int sum = 0; //对阶乘求...原创 2019-01-30 11:49:23 · 792 阅读 · 0 评论 -
Java50道经典编程题:(四十)字符排序 ——字符串方法的使用
1.问题重述题目:字符串排序。2.解析可以使用compareTo()方法比较字符串的大小,格式为:字符串1.compareTo(字符串2);当字符串1大于字符串2时值为0。3.解决问题代码如下://题目:字符串排序。public class demo { public static void main(String[] args) { String[] str =new Str...原创 2019-02-06 13:37:56 · 460 阅读 · 0 评论 -
Java50道经典编程题:(三十九)分数求和 ——循环结构及数学知识的运用
1.问题重述题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n(利用指针函数)2.解析构造两个方法,分别用来处理奇数、偶数时的情况。3.解决问题代码如下:import java.util.Scanner;//题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用...原创 2019-02-06 13:03:54 · 1159 阅读 · 2 评论 -
Java50道经典编程题:(三十八)字符串长度 ——对字符串的方法的使用
1.问题重述题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。2.解析使用length 方法即可解决问题。3.解决问题代码如下:import java.util.Scanner;//题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。public class demo { public static void main(...原创 2019-02-06 12:24:07 · 313 阅读 · 0 评论 -
Java50道经典编程题:(三十七)报数问题 ——数组的灵活选用
1.问题重述题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。2.解析在要记住位置值时还需要判断是否在圈时,可以使用布尔型数组判断,true时表明该数在圈中,false表示该数不在圈中,既方便判断,也利于程序的书写。3.解决问题代码如下://题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡...原创 2019-02-06 12:10:49 · 1479 阅读 · 0 评论 -
Java50道经典编程题:(三十六)数组移位 ——数据及循环结构的使用
1.问题重述题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数2.解析我们可以对于要前移的后面几位数据新建一个小数组进行另存,然后注意顺序的将前面的数字后移,之后再通过新建的数组,将原来后面的数据进行前移赋值。3.解决问题代码如下:// 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数public class demo { ...原创 2019-02-06 11:15:13 · 408 阅读 · 1 评论 -
Java50道经典编程题:(三十五)找最大最小值 ——数组的灵活使用
1.问题重述题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。2.解析对输入的数字进行逐个比较,比较出最大最小值,记住值的位置,最后再进行交换即可。3.解决问题代码如下:import java.util.Scanner;public class demo { public static void main(String[] args) { int i...原创 2019-02-03 13:25:37 · 514 阅读 · 0 评论 -
Java50道经典编程题:(三十四)排序问题 ——条件判断结构
1.问题重述题目:输入3个数a,b,c,按大小顺序输出。2.解析先选定a,b,c中哪个最小,哪个最大,然后比价大小,根据实际情况先确定最大数或最小数,之后依次交换即可。3.解决问题代码如下://题目:输入3个数a,b,c,按大小顺序输出。public class demo { public static void main(String[] args) { Scanner sc...原创 2019-02-03 12:59:21 · 457 阅读 · 0 评论 -
Java50道经典编程题:(三十三)杨辉三角 ——对数学问题的灵活转换
1.问题重述题目:打印出杨辉三角形(要求打印出10行)如下所示:2.解析2.1杨辉三角的规律杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。杨辉三角中,它的每个数等于它上方两...原创 2019-02-03 12:34:38 · 2487 阅读 · 3 评论 -
Java50道经典编程题:(三十二)依次取数 ——数组与循环结构的使用
1.问题重述题目:取一个整数a从右端开始的4~7位。2.解析使用求余符号%依次取出数字各个位置的位数,然后再用for循环遍历输出特定的几位数的数字。3.解决问题代码如下://题目:取一个整数a从右端开始的4~7位。public class demo { public static void main(String[] args) { Scanner scanner = new ...原创 2019-02-03 12:03:22 · 544 阅读 · 0 评论 -
Java50道经典编程题:(二十二)递归求阶乘 ——递归的使用
1.问题重述题目:利用递归方法求5!。2.解析在这里,递归公式为:sum(乘积) = a × factorial(a - 1)(递归方法)3.解决问题代码如下:public class demo { public static void main(String[] args) { System.out.println("5的阶乘是:" + Factorial(5)); } ...原创 2019-01-30 12:26:05 · 531 阅读 · 0 评论 -
Java50道经典编程题:(二十三)年龄问题 ——递归方法的使用
1.问题重述题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?2.解析同问题二十二一样,使用递归方法,可以轻松求解。3.解决问题代码如下:public class demo { public static void mai...原创 2019-01-30 12:45:04 · 857 阅读 · 0 评论 -
Java50道经典编程题:(二十四)数字的位数判断及逆序打印 ——数组及循环结构的灵活使用
1.问题重述题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。2.解析利用数组存储各个位的数字,注意判断数字是否为零;对于循环取值的跳出条件,以及循环条件需要注意。3.解决问题代码如下:import java.util.Scanner;public class demo { public static void main(String[] args)...原创 2019-01-30 13:22:53 · 306 阅读 · 0 评论 -
Java50道经典编程题:(四十九)子串计数 ——java中的数据结构
1.问题重述题目:计算字符串中子串出现的次数2.解析使用哈希图进行计数,引用import java.util.HashMap; import java.util.Map;中的方法进行求解。3.解决问题代码如下:import java.util.HashMap;import java.util.Map;// 题目:计算字符串中子串出现的次数public class demo {...原创 2019-02-09 20:54:05 · 399 阅读 · 0 评论 -
Java50道经典编程题:(四十八)数字挪位 ——数组的使用
1.问题重述题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。2.解析将各个位置上的数字分别储存到数组中,再对数组中的数字进行操作、排序,得到之后的数字。3.解决问题代码如下:import java.util.Scanner;public clas...原创 2019-02-09 20:38:29 · 325 阅读 · 0 评论 -
Java50道经典编程题:(四十七)图形打印 ——循环结构的使用
1.问题重述题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。2.解析使用for循环打印相应数目的*即可。3.解决问题代码如下:import java.util.Scanner;// 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。public class demo { public static void main(Str...原创 2019-02-09 20:29:10 · 691 阅读 · 0 评论 -
Java50道经典编程题:(四十六)字符串拼接 ——多方法拼接
1.问题重述题目:两个字符串连接程序2.解析希望不要小瞧这个题,字符串的拼接有多种方式,不同的方式其效果和作用不同,希望大家可以仔细研究拼接的多种方法。3.解决问题代码如下:// 题目:两个字符串连接程序public class demo { public static void main(String[] args) { String one = "String1"; S...原创 2019-02-09 20:21:06 · 593 阅读 · 0 评论 -
Java50道经典编程题:(四十五)暂无解
1.问题重述题目:判断一个素数能被几个9整除2.解析素数,无法被9整除,此题暂无解,代码为随意找的。3.解决问题代码如下:import java.util.Scanner;// 题目:判断一个素数能被几个9整除public class demo { public static void main(String[] args) { System.out.print("请输入一...原创 2019-02-09 20:05:51 · 426 阅读 · 1 评论 -
Java50道经典编程题:(四十四)哥德巴赫猜想 ——素数的判断
1.问题重述题目:一个偶数总能表示为两个素数之和。2.解析可以参考我的博客素数的判断,学会素数的判断,稍作变形即可。3.解决问题代码如下:import java.util.Scanner;public class demo { public static void main(String[] args) { Scanner scanner = new Scanner(Syst...原创 2019-02-09 19:44:56 · 576 阅读 · 2 评论 -
Java50道经典编程题:(四十三)数字构成 ——数学问题的灵活解决
1.问题重述题目:求0—7所能组成的奇数个数。2.解析在对此类问题进行解决时,可以先考虑其数学解决方案,寻找数学规律,利用数学规律进行代码化的实现,本题的思路会在代码中详解。3.解决问题代码如下://题目:求0—7所能组成的奇数个数。public class demo { public static void main(String[] args) { Integer sum ...原创 2019-02-09 19:12:53 · 1488 阅读 · 0 评论 -
Java50道经典编程题:(四十二)数字查询 ——循环的使用
1.问题重述题目:809*??=800*??+9*??+12.解析使用for+if判断即可。3.解决问题代码如下://题目:809*??=800*??+9*??+1public class demo { public static void main(String[] args) { for (int i = 10; i < 100; i++) { // 判断是否有...原创 2019-02-09 17:47:11 · 306 阅读 · 0 评论 -
Java50道经典编程题:(四十一)猴子分桃 ——问题的转换
1.问题重述题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?2.解析我们可以换一种思维,把这个问题转换为按照这个要求找一个符合这个条件的正整数。3.解决问题代码如...原创 2019-02-09 17:32:50 · 675 阅读 · 0 评论 -
Java50道经典编程题:(二十五)回文数的判断 ——数组和循环结构的灵活使用
1.问题重述题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。2.解析创建一个5位数的数组,依次读取数字,然后再判断是否是回文数,满足条件与否即可。3.解决问题代码如下:import java.util.Scanner;public class demo { public static void main(String[] args) {...原创 2019-01-30 14:04:07 · 1145 阅读 · 0 评论 -
Java50道经典编程题:(三十一)逆序输出 ——循环结构的使用
1.问题重述题目:将一个数组逆序输出。2.解析注意for循环的逆序输出时的变量设置是否合理即可。3.解决问题代码如下://题目:将一个数组逆序输出。public class demo { public static void main(String[] args) { int[] array = new int[] {1,2,3,4,5}; System.out.print...原创 2019-02-03 10:49:39 · 418 阅读 · 0 评论 -
Java50道经典编程题:(二十)分数数列求和 ——寻找规律解决问题
1.问题重述题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。2.解析观察后发现,前面一项分子和分母相加的和为下一项的分子,前面一项分子,为下一项的分母;再观察发现,这些数字1、1、2、3、5、8、13、21……正是斐波那锲数列,参照我的第一条博客:https://blog.csdn.net/weixin_43812140/article/...原创 2019-01-28 16:42:07 · 3281 阅读 · 0 评论 -
Java50道经典编程题:(十一)取不重复数字 ——循环结构的嵌套使用
1.问题重述题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?2.解析2.1如何判断无重复位?使用三个嵌套的for循环,再最里层的for循环中使用if语句判断。2.2如何输出这些数字?System.out.println(百位数字100 + 十位数字10 + 个位数字);3.解决问题代码如下:public class demo { public ...原创 2019-01-26 14:19:13 · 478 阅读 · 0 评论 -
Java50道经典编程题:(五)分数等级对应判断 ——条件运算符的嵌套
1.问题重述题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。2.解析2.1如何表示嵌套?(a>b)?a:(b>d?b:c)3.解决问题代码:import java.util.Scanner;public class demo { public static void main(Strin...原创 2019-01-19 17:58:22 · 550 阅读 · 0 评论 -
Java50道经典编程题:(四)分解质因数 ——循环结构和判断结构的综合应用
1.问题重述题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。2.解析2.1质因数的提取问题使用for循环,从2开始,依次增加寻找最小质因数。2.2循环体的调整问题当寻找到最小质因数时,调整此时的数字为该数除以已找到的最小质因数。如:n = n / i;(n为输入的数字,i为最小质因数)2.3判断跳出循环体当该数为质数或找到最后一个质因数时,...原创 2019-01-19 17:42:41 · 742 阅读 · 0 评论 -
Java50道经典编程题:(十)弹球高度问题 ——迭代语句的灵活使用
1.问题重述题目:一球从h米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?2.解析2.1解题规矩反弹的高度:(1/2)的n次方*h 经过的距离:这个可以总结得到:第一次落地经过:h,第二次落地经过:h+(h/2)*2,第三次落地经过:h+(h/2)*2+(h/2/2)*2那么第n次落地经过:h+(h/2)*2+(h/2/2)...原创 2019-01-24 16:12:17 · 1605 阅读 · 0 评论 -
Java50道经典编程题:(九)求一千以内的“完数” ——循环结构的嵌套应用
1.问题重述题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。2.解析2.1如何不将数字本身添算进因子中去?使用for循环时,使内层的变量j的大小小于外层变量i的大小即可。3.解决问题代码如下:public class demo { public static void main(String[] args) { i...原创 2019-01-24 15:17:24 · 560 阅读 · 0 评论 -
Java50道经典编程题:(三)打印水仙花数 ——循环结构的使用
Java50道经典编程题:(三)打印水仙花数——循环结构的使用1.问题重述题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。2.解析2.1如何提取出一个数的个位、十位、百位的数字?如果i是一个三位数,则:int bite = i % 10;//提取出个位数字i...原创 2019-01-19 14:01:35 · 881 阅读 · 0 评论 -
Java50道经典编程题:(二)素数判断 ——java循环结构和选择结构的综合使用
Java50道经典编程题:(二)素数判断 ——java循环结构和选择结构的综合使用 1.问题重述题目:判断101-200之间有多少个素数,并输出所有素数。2.解析2.1什么是素数?素数是:只能被1或本身整除的数。2.2怎么判断素数?判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之则是素数。3.解决问题3.1思路解析主程序main...原创 2019-01-19 13:16:50 · 599 阅读 · 0 评论 -
Java50道经典编程题:(八)集合及累加运算 ——集合及循环结构的使用
1.问题重述题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如输入2与5,则输出:2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。输入2与3,则输出结果的形式如:2+22+222=246;2.解析2.1如何把每一项的值赋值给数组里面的数?使用while语句,通过已知的规律:第1和第2项相差210,第2和第三项相差2100,第k和...原创 2019-01-24 14:34:12 · 673 阅读 · 0 评论 -
Java50道经典编程题:(七)输出不同种类字符个数 ——字符串的遍历及循环结构的使用
1.问题重述题目:输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。2.解析2.1如何判断字符的种类?对比每一个数值在ASCII码的范围,就可以确定它符号的类别;char字符ASCII码的范围:数字0到9: 48~57字母A到Z:65到90 a到z:97到122空格是322.2如何遍历字符串?使用for循环对字符串集合Array[]逐个遍历:for (i...原创 2019-01-24 13:17:27 · 611 阅读 · 0 评论 -
Java50道经典编程题:(六)求最大公约数和最小公倍数 ——java实现辗转相除法
1.问题重述题目:输入两个正整数m和n,求其最大公约数和最小公倍数。2.解析2.1如何求最大公约数?使用辗转相除法,又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是...原创 2019-01-24 12:38:33 · 5625 阅读 · 4 评论 -
Java50道经典编程题:(十二)工资计算 ——判断结构的灵活使用
1.问题重述题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的...原创 2019-01-26 14:28:44 · 1083 阅读 · 0 评论 -
Java50道经典编程题:(十三)数字谜题 ——循环语句及判断符的使用
1.问题重述题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?2.解析用for循环在10,000以内判断:先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果再平方后分别和i+100,i+268相等,那么该数即是结果。3.解决问题代码如下:public class demo { public static void m...原创 2019-01-26 14:30:18 · 523 阅读 · 0 评论 -
Java50道经典编程题:(十四)日期判断 ——逻辑缜密性锻炼及判断结构的使用
1.问题重述题目:输入某年某月某日,判断这一天是这一年的第几天?2.解析2.1天数如何计算创建一个数组存储非闰年每个月的天数,输入月份时,遍历之前的天数并相加;如为闰年且月份大于2时,总天数应加一。2.2错误判断输入的年份大小是否合理输入的月份是否合理输入的天数是否合理(与数组中的数据做比较,小于数组中对应月份的天数即合理)3.解决问题代码如下(如有问题,欢迎私聊我讨论):...原创 2019-01-26 14:32:30 · 657 阅读 · 0 评论 -
Java50道经典编程题:(十九)菱形的打印 ——寻找规律解决问题
1.问题重述题目:打印出菱形(固定输出和根据键盘读入的信息输出)2.解析先把图形分成两部分来看待,前四行一个规律,后三行一个规律;设i表示行,j表示列先写一个say方法,输入行数时,可以返回该行有多少列则前四行的规律为:当i+j的和小于5时,则输出一个空格,其余位置均为*后三行的规律:当(i-4)<=j时,则输出一个空格,其余位置为*3.解决问题代码如下:灵活打印imp...原创 2019-01-28 16:16:09 · 699 阅读 · 0 评论