
五十道编程小算法
文章平均质量分 83
秋夫人
将军赶路不追野兔
展开
-
五十道编程小题目 --- 37 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子 java
【程序37】 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 import java.util.Arrays;import java.util.Scanner;import net.mindview.util.Print;public class Test37 { publi原创 2016-09-09 11:13:39 · 4718 阅读 · 1 评论 -
五十道编程小题目 --- 04 正整数分解质因数 java
【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 代码:public class FenJieZhi原创 2016-08-24 19:43:15 · 1462 阅读 · 0 评论 -
五十道编程小题目 --- 07 统计出其中英文字母、空格、数字和其它字符的个数 java
【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用正则表达式import java.util.Scanner;import java.util.regex.Pattern;public class Counting { public static void counting(String str) {// c原创 2016-08-24 20:52:39 · 913 阅读 · 0 评论 -
五十道编程小题目 --- 08 求s=a+aa+aaa+aaaa+aa...a的值 java
【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 import java.util.Scanner;public class NumAdd { public static void numAdd(int n){ int result原创 2016-08-24 21:36:00 · 1956 阅读 · 0 评论 -
五十道编程小题目 --- 09 完数 java
【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。 import java.util.ArrayList;import com.sun.tools.apt.Main;public class DivisorAdd { public static void divisorAdd(int n){原创 2016-08-24 22:05:11 · 547 阅读 · 0 评论 -
五十道编程小题目 --- 10 反弹的小球 java
【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? public class BallFlip { public static void ballFlip(double m, double n){ StringBuilder sb = new StringBuilde原创 2016-08-25 13:04:22 · 4057 阅读 · 2 评论 -
五十道编程小题目 --- 11 排列与组合(阶乘) java
【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 思路:全排列,n个数字,能组成Anm 个互不相同且无重复数字的m位数。即: 扩展:排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫原创 2016-08-25 14:26:34 · 1583 阅读 · 0 评论 -
五十道编程小题目 --- 12 企业发放的奖金根据利润提成 java
【程序12】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,原创 2016-08-25 17:30:58 · 5555 阅读 · 0 评论 -
五十道编程小题目 --- 13 java
【程序13】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 扩展:完全平方即用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。完全平方数是非负数,而一个完全平方数的根有两个。即 i2 即为完全平方数。public class Test13 {原创 2016-08-25 17:51:34 · 880 阅读 · 0 评论 -
五十道编程小题目 --- 14 java
【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,判断闰年import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Cal原创 2016-08-25 19:12:00 · 768 阅读 · 0 评论 -
五十道编程小题目 --- 19 打印菱形 java
【程序19】 题目:打印出如下图案(菱形) * *** ***** ******* ***** *** *和图形* *** ****** ******** ****** *** * import java.util.Scanner;public class Test19 { public原创 2016-08-25 20:47:16 · 1896 阅读 · 0 评论 -
五十道编程小题目 --- 20 java
【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 1.程序分析:请抓住分子与分母的变化规律,分子分母都遵循【斐波那契数列】n = (n-1) + (n-2); n>2;import java.util.Scanner;public class Test20 { //斐波原创 2016-08-25 21:15:10 · 781 阅读 · 0 评论 -
五十道编程小题目 --- 24 java
【程序24】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 import java.util.Collections;import java.util.LinkedList;import java.util.Scanner;public class Test24 { public static void test24()原创 2016-08-25 21:44:51 · 748 阅读 · 0 评论 -
五十道编程小题目 --- 25 回文数 java
【程序25】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 public class PalindromicNumber { public static void palindromicNumber(int n){ int a = n%10; //取得个位数 int b = n/10%10; //取得十位数 in原创 2016-08-26 09:55:53 · 1941 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 00
【程序28】 题目:对10个数进行排序 1.程序分析:八大排序算法扩展:八大排序算法排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。原创 2016-08-26 15:09:13 · 3915 阅读 · 1 评论 -
五十道编程小题目 --- 29 java
【程序29】 题目:求一个3*3矩阵对角线元素之和 1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 import java.util.Random;public class Test29 { public static void main(String[] args) { int[][] arr = createArr(3); S原创 2016-09-07 18:00:29 · 503 阅读 · 0 评论 -
五十道编程小题目 --- 30 java
【程序30】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 import java.util.Arrays;import java.util.Random;import java.util.Scanner;public class Test30 { public static void main(String[] args) { Ran原创 2016-09-08 10:25:52 · 677 阅读 · 0 评论 -
五十道编程小题目 --- 02 找素数(质数)java
【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class PrimeNumber { public static void isPrime(int n){ double k = Math.sqrt(n);原创 2016-08-24 17:32:09 · 1440 阅读 · 1 评论 -
五十道编程小题目 --- 01 兔子三月生兔子问题java
【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?【即 斐波那契数列】1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 编写程序在控制台输出斐波那契数列前20项现在从变量、数组、递归三个角度出发解决这个puzzle:变量,方转载 2016-08-24 17:12:16 · 4343 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 07归并排序
7. 归并排序(Merge Sort)基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序示例: 合并方法:设r[i…n]由两个有序子表r[i…m]和r[m+1…n]组成,两个子表长度分别为m+原创 2016-09-07 15:34:43 · 1114 阅读 · 0 评论 -
五十道编程小题目 --- 32 取一个整数a从右端开始的4~7位。 java
【程序32】 题目:取一个整数a从右端开始的4~7位。 程序分析:可以这样考虑: ① 以二进制方式考虑:(1)先使a右移4位。 (2)设置一个低4位全为1,其余全为0的数。可用~(~0(3)将上面二者进行&运算。 ②以十进制考虑: (1).一个五位以上的数a, 除以10000(a/10000) 取商。ublic class Test32 {原创 2016-09-09 13:21:26 · 2225 阅读 · 0 评论 -
五十道编程小题目 --- 39 java
【程序39】 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/nimport java.util.Scanner;public class Test39 { public static void main(String[] args) { System.ou原创 2016-09-09 13:40:28 · 694 阅读 · 0 评论 -
五十道编程小题目 --- 40 字符串排序 java
【程序40】 题目:字符串排序。 import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test40 { public s原创 2016-09-09 15:12:17 · 1351 阅读 · 0 评论 -
五十道编程小题目 --- 41 809*??=800*??+9*??+1 java
【程序42】 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。package wn.comeOn.java.test.arithmetic50;public class Test42 { public static void main(Strin原创 2016-09-09 16:35:30 · 2475 阅读 · 0 评论 -
五十道编程小题目 --- 43 求0—7所能组成的奇数个数(排列组合) java
【程序43】 题目:求0—7所能组成的奇数个数。 算法思想:这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,当一个数的最后一位为奇数时,那么这个数一定为奇数,不管前面几位是什么数字。如果最后一位数为偶数,则这个数一定为偶数。a1-a8可以取0-7这个八个数字,首位数字不为0。从该数为一位原创 2016-09-09 17:23:59 · 6994 阅读 · 1 评论 -
五十道编程小题目 --- 48 java
【程序48】 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 import java.util.HashMap;public class Test48 { /**加密 * :每位数字 都加上5,然后用和除以10的余数代替该数字,原创 2016-09-12 16:46:28 · 1229 阅读 · 0 评论 -
五十道编程小题目 --- 49 计算字符串中子串出现的次数 java
【程序49】 题目:计算字符串中子串出现的次数 public class Test49 { public static void main(String[] args) { String string = "asdbdiasddeigongksasdcdejgeocde"; String str = "asd"; int count = 0; whil原创 2016-09-12 17:01:43 · 5696 阅读 · 0 评论 -
五十道编程小题目 --- 00
看到了50道编程小题目,看了一下挺好的,就留下来,大家有时间也做做啊,做好把代码和心得贴在自己博客,大家一块交流啊,别小看这些小题目,做大的系统也是把一个大系统不断的分成一个个小模块做啊,我觉得这个很能锻炼逻辑思维能力,和对面向对象的理解,从题目中抽象出来类,并思考类中字段,方法,这个过程可以收获很多,好了废话不说了,题目如下:【程序1】 题目:古典问题:有一对兔子,从出生后第3个原创 2016-08-24 16:26:07 · 12567 阅读 · 3 评论 -
五十道编程小题目 --- 50 有五个学生,每个学生有3门课的成绩,计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中java
【程序50】 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;imp原创 2016-09-14 13:02:08 · 6438 阅读 · 0 评论 -
五十道编程小题目 --- 06 最大公约数和最小公倍数 java
【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:辗除法或相减法。求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法(2)相除法(1)辗转相除法有两整数a和b:① a%b得余数c② 若c=0,则b即为两数的最大公约数原创 2016-08-24 20:15:57 · 1304 阅读 · 0 评论 -
五十道编程小题目 --- 03打印出所有的"水仙花数"java
【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 public class WaterFlower { public static void waterFlo原创 2016-08-24 17:51:14 · 1772 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 01直接插入排序
1.插入排序—直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。直接插入排序示例:如果碰见原创 2016-09-05 19:00:23 · 1263 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 02希尔排序
2. 插入排序—希尔排序(Shell`s Sort)希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:选择一个增量序列t1,t2,…,tk,其中t原创 2016-09-05 19:01:52 · 1078 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 04堆排序
4.选择序—堆排序(Heap Sort)堆排序是一种树形选择排序,是对直接选择排序的有效改进。基本思想:堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。若以一维数组存储一个堆(Java数组从0开始,i为0到n-1),则堆对应一棵完全二叉树,且所有非叶结点的原创 2016-09-05 19:05:12 · 892 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 06快速排序
6. 交换排序—快速排序(Quick Sort)快速排序算法介绍 快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可原创 2016-09-06 13:14:41 · 1090 阅读 · 0 评论 -
五十道编程小题目 --- 28 八大排序算法 java 之 05冒泡排序
5. 交换排序—冒泡排序(Bubble Sort)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。冒泡排序的示例: 算法的实现:import java.util.Random;publ原创 2016-09-06 13:16:09 · 1423 阅读 · 0 评论 -
五十道编程小题目 --- 33 杨辉三角 java
【程序33】 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 import java.util.Random;public class YanghuiTriangle { public static void main(String[]原创 2016-09-08 17:07:59 · 2153 阅读 · 0 评论