![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java趣味编程
annyangya
写代码写笔记,在练习中不断成长,加油!
展开
-
java趣味编程案例一:回形矩阵的实现
问题描述: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 根据输入不同的矩阵行或列,实现上述矩阵。问题分析:矩阵从第一行第一个值开始向右依次递增,直到到达矩阵的右边界,方向向下,以此类推,整个矩阵值的递增是顺时针方向的。矩阵的实现关键是要判断方向何时变化。假设矩阵初始值都为0。比如说矩阵向左递增,当矩阵到达最左端...原创 2018-05-02 20:41:30 · 1116 阅读 · 0 评论 -
Java趣味编程案例6----完全数
完全数即数值的所有约数和(不包括它本身)等于本身的数值,如6的因数有1,2,3,则6=1+2+3,所以6就是完全数。求出10000以内的所有完全数。使用循环,求出该数的所有因数并对他们求和,求和之后比较。这里我们求因数的范围是n/2,也可以通过平方根来求。package _3InterestingInteger;/*求完全数 */public class _3_3 { p...原创 2019-01-23 15:14:21 · 362 阅读 · 0 评论 -
Java趣味编程案例7----相亲数
相亲数:A的真因数之和为B,B的真因数之和为C,且有C=A,则A和B是一对相亲数。求出100000以内的所有相亲数。这里我们还是使用穷举法,穷举出所有的因数并且求和,然后比较。package _3InterestingInteger;public class _3_4 { public static void main(String[] args) { run(2...原创 2019-01-23 15:18:25 · 543 阅读 · 0 评论 -
Java趣味编程案例8----黑洞数
黑洞数:将一个数各个位的数重排后最大数减去最小数,得到答案后继续执行上述操作,最终会得到一个固定的数,如,3位数的黑洞数是495,4位数的黑洞数是6174.验证四位数的黑洞数是6174.首先我们要获取一个四位数的各个位上的数值,将四个数值排序后,取得四位最大值和四位最小值,然后相减,直到结果是6174.package _3InterestingInteger;import java.ut...原创 2019-01-23 16:29:47 · 641 阅读 · 0 评论 -
Java趣味编程案例9----勾股数
勾股数:a ^2 + b ^2=c ^2求出1000以内的所有勾股数。这里我们用两种方法,第一种是穷举法,相对耗时较多,第二种是简化了的穷举法,相比第一种耗时较少。package _3InterestingInteger;public class _3_6_1 { public static void main(String[] args) { long star...原创 2019-01-23 16:36:34 · 1546 阅读 · 2 评论 -
Java趣味编程10----自守数
自守数即某个数的平方的末尾几个数等于这个数本身,那么这个数就叫自守数。如25 * 25=625,76*76=5776,所以25和76就是自守数。所以,我们要取得结果的末尾几个数和原数比较,这里我们使用了字符串的方法,将结果转成String类型,然后通过获取子串的结果和原来的串相比较。package _3InterestingInteger;/*自守数 */public class ...原创 2019-01-23 17:04:05 · 1299 阅读 · 0 评论 -
Java趣味编程11----3位反序数
反序数即一个数排序颠倒,如123和321,反序数唯一不可能出现以0结尾的数。求一个三位数,它和它的反序数的乘积是280021.这里也是获取各个位上的数值然后反序再求出反序数,最后反序数与原数值相乘判断结果是否为280021.package _3InterestingInteger;public class _3_8 { public static void main(String...原创 2019-01-23 17:09:49 · 644 阅读 · 0 评论 -
Java趣味编程案例20----最大公约数
求任意两个数的最大公约数。1)利用辗转相除法求最大公约数2)利用递归求最大公约数import java.util.Scanner;/*辗转相除法求最大公约数 */public class _6_1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in)...原创 2019-02-06 22:23:02 · 193 阅读 · 0 评论 -
Java趣味编程案例21----最小公倍数
求任意三个整数的最小公倍数。过程:每一次操作都把当前最小的那个数加上他的初始值。所以,首先,我们要判断三个数是否相等,如果不相等则求出三个值里面的最小值并得到它的索引,加上对应的初始值,如此循环,直到三个数相同。import java.util.Scanner;/*求三个整数的最小公倍数 */public class _6_2 { public static void ma...原创 2019-02-06 22:33:16 · 516 阅读 · 0 评论 -
Java趣味编程案例22----分数比较
比较两个分数的大小。思路:1)分母相同则比较分子,分子大则分数值大2)分子相同比较分子,分母大则分数小3)分子分母均不相同则通分后比较分子的大小import java.util.Scanner;public class _6_3 { public static void main(String[] args) { Scanner scanner=new Sca...原创 2019-02-07 21:19:48 · 1147 阅读 · 0 评论 -
Java趣味编程案例23----分数数列
求分数序列:2/1,3/2,5/3,8/5,……,数列之和思路:找规律,可得下一个分数的分母是前一个分数的分子,分子是前一个分数的分子分母之和。import java.util.Scanner;public class _6_4 { public static void main(String[] args) { System.out.println("求前n项之...原创 2019-02-07 21:23:25 · 602 阅读 · 0 评论 -
Java趣味编程案例5----水仙花数
问题描述:水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身,如1^3+5 ^3+3 ^3=153。1)求100-999之间的所有水仙花数2)求任意范围内的水仙花数第二个问题是第一个问题的拓展,这里我们先求出100–999范围内的水仙花数。这里我们还是获取数值的各个位上的数,然后对他们求立方再求和,最后和原数值比较,相等则为水仙花数。package _3...原创 2019-01-23 14:33:42 · 568 阅读 · 0 评论 -
java趣味编程案例4----不重复的3位数
问题描述:0-9这10个数字可以组成多少不重复的三位数由题目可知,三位数的范围是100-999,不重复即个位,十位,百位上的数都不相同。所以,我们要先获取一个数上各个位上的数值,然后再比较这些数是否相同,不相同则不重复。获取个位,十位,百位上的数值的方法:a=i/100;//取得百位上的值b=i/10%10;//取得十位上的值c=i%10;//取得各位上的值如,数值123:百位:...原创 2019-01-23 14:21:05 · 2147 阅读 · 0 评论 -
java趣味编程案例二:国际象棋棋盘的实现
问题描述: 打印出国际象棋棋盘(黑白交错) 问题分析: 棋盘由八块黑白相间的方块组成,通过swing编程实现。其中用标签来实现方块,在方块中填充黑或白色。通过i,j来遍历行和列,以i和j的值来判断填充什么颜色代码分析import javax.swing.*;import java.awt.*;public class _2ChessBoard { public st...原创 2018-05-02 21:39:36 · 4709 阅读 · 3 评论 -
java趣味编程案例三:两种杨辉三角的实现
要求:根据输入行数,打印出杨辉三角,这里我们实现两种杨辉三角:直角三角形和等腰三角形的杨辉三角,如下所示: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 1 1 ...原创 2018-05-04 22:38:01 · 279 阅读 · 0 评论 -
Java趣味编程案例12----孪生素数
孪生素数:若两个素数之差为2,则这两个素数就是孪生素数。编程找出1-100之间的所有孪生素数。首先要知道1-100以内有哪些素数,然后对这些素数求差,这里我们将素数从小到大存放在数组中,最后遍历数组求差即可。package _4InterestingPrime;public class _4_2 { public static void main(String[] args) {...原创 2019-01-23 22:31:59 · 2002 阅读 · 0 评论 -
Java趣味编程案例13----金蝉素数
金蝉素数:这些数是由1,3,5,7,9 这5 个奇数字排列组成的5 位素数,且同时去掉它的最高位与最低位数字后的三位数还是素数,同时去掉它的高二位与低二位数字后的一位数还是素数。因此,人们把这些神秘的素数称为金蝉素数。分析:假设有一个5位数k,首先k是素数,其次,k去掉首尾后的三位数d也是素数,且d的中间位的数是素数,说明中间的那个数不是1或9.同样,k的每一位的值都不相同,且都不是偶数。所以...原创 2019-01-24 14:53:28 · 506 阅读 · 0 评论 -
Java趣味编程案例14----可逆素数
可逆素数:一个数本身和它各位数值颠倒顺序后得到的数仍为素数,如113,311.求1–900之间的所有可逆素数。分析:因为要判断一个数和它顺序颠倒后的数是不是素数,所以我们写一个方法判断是不是素数,然后再写一个将数据颠倒顺序的方法。反序:借助字符串实现反序。(我发现字符串是比较万能的,比如我们要求一个整数有多少位,我们可以把它和一个空的字符串连接然后求字符串的长度,得到的就是这个整数的长度。...原创 2019-01-24 14:59:57 · 968 阅读 · 0 评论 -
Java趣味编程案例15----回文素数和平方回文素数
回文素数:即一个整数n从左向右和从右向左结果值相同且都是素数,即称回文素数。平方回文素数即素数的平方是回文素数,如11*11=121主要涉及两个方法,判断一个数是不是素数,和判断一个数是不是回文数。判断回文数我们使用字符串提供的方法,来判断字符串首尾是否对称。回文素数:即这个数既是素数又是回文数平方回文素数:这个数是素数且这个数的平方是回文数。回文素数:package _4Inter...原创 2019-01-24 15:30:49 · 476 阅读 · 0 评论 -
Java趣味编程案例16----哥德巴赫猜想
哥德巴赫猜想:任何一个大于2的偶数都可以表示成两个素数之和。外层循环从4开始遍历,每次递增2,内层循环从2开始,每次递增1,判断是否两个数为素数且和是外层循环的数。package _4InterestingPrime;/*哥德巴赫猜想 */public class _4_8 { public static void main(String[] args) { i...原创 2019-01-24 16:29:18 · 480 阅读 · 0 评论 -
Java趣味编程案例17----等差素数数列(待更新)
等差素数数列:由素数组成的数列叫等差素数数列。找出100以内的等差素数数列。原创 2019-01-24 20:43:52 · 273 阅读 · 0 评论 -
Java趣味编程案例18----百鸡百钱
百鸡百钱问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,如果100文钱买一百只鸡,那么公鸡母鸡小鸡各有多少只?分析:这里我们可以通过解方程求解,设公鸡,母鸡,小鸡的数量为x,y,z,方程如下:x+y+z=1005x+3y+z/3=100我们只需要编程实现上述方程即可。package _5InterestingEquation;/*百鸡百钱 */public class _...原创 2019-01-25 13:45:30 · 609 阅读 · 0 评论 -
Java趣味编程案例19----楼梯台阶(对代码仍有疑惑,后期补心得及分析)
问题:一共有10个台阶的楼梯,从下面走到上面,一次只能迈一个台阶或两个台阶,并且不能后退,走完这个楼梯共有多少种方法。代码:package _5InterestingEquation;import java.util.ArrayList;import java.util.List;/*楼台阶梯 */public class _5_2 { //打印走法 publ...原创 2019-01-25 13:49:21 · 478 阅读 · 0 评论 -
Java趣味编程案例24----猴子分桃
问题:五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了个数相等的五堆,多出一只;于是,它吃掉了一个,拿走了一堆。第二只猴子起来一看,只有四堆桃,于是把四堆合在一起,分成相等的五堆,又多出一个;然后,它也吃掉了一个,拿走了一堆。剩下的三只猴子也都是这样分的。问:这堆桃至少有多少个?思路:使用穷举法,吃掉一个剩下的可以均分五分,设有count个,则有(count-1)%5==0, 剩下 (coun...原创 2019-02-07 21:31:30 · 496 阅读 · 0 评论