




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java算法经典实例package 笔试必备;import java.util.Scanner;/import java.util.Scanner;/* * 笔试算法汇总 */public class Algorithm public static void main(String args) /*Scanner s=new Scanner(System.in);int n=s.nextInt();for(int i=1;i=n;i+)System.out.println(第+i+个月的兔子数为+number1(i)+对);s.close();*/primeNumber(101,200);/decomposition(100);/System.out.println(score(59);/System.out.println(lcm(5,12);/counting(a5s6s w2 h 1$f %);/System.out.println(overlay(2,3);/half(100,10);/System.out.println(combination(4);/System.out.println(bonus(21);/completeSquarenNumber(1000);/date(2015,3,18);/sort();/multiplication(9);/eatPeach();/diamond();/sum(20);/factorialSum(4);/System.out.println(factorial(5);/System.out.println(age();/biteNamber(4321);/palindromeNumber(12321);/primeNumber();/getBit(1234567);/insert(5,new int8,6,4,2);swap(new int4,2,3,8,5,6,1,7);/* * 笔试之一:兔生兔的问题 * 有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? */传一个月份npublic static int number1(int n)int number=0;if(n=1|n=2) number=1;else for(int i=3;i=n;i+)number= number1(i-1)+number1(i-2);return number;/* * 笔试之二: 水仙花问题 * 打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。 * 例如:153是一个 水仙花数,因为153=1的三次方5的三次方3的三次方。 */public static void number2() int units;int tens;int hundreds;for (int i = 100; i 1000; i+) units = i % 10;tens = (i / 10) % 10;hundreds = i / 100;if (i = units * units * units + tens * tens * tens + hundreds* hundreds * hundreds) System.out.println(i);/* * 笔试之三:素数问题 * 判断101-200之间有多少个素数,并输出所有素数。 * 一个大于1的自然数,除了1和它本身外,不能被其他自然数整除 * 换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。 */public static void primeNumber(int start,int end)int number=0;for(int i=start+1;iend;i+)int t=1;for(int j=2;j(end-start)/2;j+)if(i%j=0)t=0;if(t=1)System.out.print(i+,);number+;System.out.println(素数个数为:+number);/* * 笔试之四:分解因子 * 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 * (2)如果n k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。 * (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 */public static void decomposition(int n)for(int i=2;i =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 */public static String score(int n)String level;level=(n=90?A:(n=60?B:C);return level;/* * 笔试之六:最大公约和最小公倍数,输入两个正整数m和n,求其最大公约数和最小公倍数。 */public static int gcd(int m,int n)int temp;int r=1;if(mn)temp=m;m=n;n=temp;while(r!=0)r=m%n;m=n;n=r;return m;public static int lcm(int m,int n)return m*n/gcd(m,n);/* * 笔试之七:统计运算符,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 */public static void counting(String str)char c=str.toCharArray();int m=0;int n=0;int r=0;int s=0;for(int i=0;ic.length;i+)if(ci=a|ci=A)m+;else if(ci=0)n+;else if(ci= )r+;elses+;System.out.println(英文字母的个数为:+m);System.out.println(数字的个数为:+n);System.out.println(空格的个数为:+r);System.out.println(其他字符的个数为:+s);/* * 笔试之八:叠加,求a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 * */public static int overlay(int a,int n)int num=0;int temp=0;for(int i=0;in;i+)temp+=a*Math.pow(10, i);num+=temp;return num;/* * 笔试之九:完数,一个数如果恰好等于它的因子之和,这个数就称为 完数 。例如6=123.编程找出1000以内的所有完数。 */public static void perfectNumber(int n)for(int i=1;in;i+)for(int j=1;ji;j+)int sum=0;if(i%j=0)sum+=j;if(sum=i)System.out.println(i);/* * 笔试之十:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? */public static void half(double m,int n)int sum=0;for(int i=0;in;i+)sum+=m;m/=2;System.out.println(第+n+次落地共经过+sum);System.out.println(第+n+次反弹+m+米);/* * 笔试之十一:排列组合有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? */public static int combination(int n)int temp=0;for(int i=1;in+1;i+)for(int j=1;jn+1;j+)for(int k=1;kn+1;k+)for(int r=1;rn+1;r+)if(i!=j&j!=k&k!=r&i!=k&j!=r&i!=r)System.out.println(i*1000+j*100+k*10+r);temp+;return temp;/* * 笔试之十二: 企业发放的奖金根据利润提成。利润(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万 * 元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? */public static double bonus(double profit)double bonus;if(profit=10)bonus=profit*0.1;else if(profit20)bonus=10*0.1+(profit-10)*0.075;else if(profit40)bonus=10*0.175+(profit-20)*0.05;else if(profit60)bonus=10*0.175+20*0.05+(profit-40)*0.03;else if(profit100)bonus=10*0.175+20*0.05+20*0.03+(profit-60)*0.015;elsebonus=10*0.175+20*0.05+20*0.03+40*0.015+(profit-100)*0.015;return bonus;/* * 笔试之十三:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? */public static void completeSquarenNumber(int s)int temp=0;double m;double n;for(int i=0;i2)sum+;System.out.println(It is the the day:+sum);/* * 笔试之十五:输入三个整数x,y,z,请把这三个数由小到大输出。 */public static void sort()System.out.println(请输入3个整数,按Enter键结束);Scanner s=new Scanner(System.in);int array=new int3;for(int i=0;iarray1)temp=array0;array0=array1;array1=temp;if(array0array2)temp=array0;array0=array2;array2=temp;if(array1array2)temp=array1;array1=array2;array2=temp;for(int i=0;i3;i+)System.out.print(arrayi+ );/* * 笔试之十六:乘法口诀,输出9*9口诀 */public static void multiplication(int n)for(int i=1;i=n;i+)for(int j=1;j=i;j+)System.out.print(Integer.toString(j)+*+Integer.toString(i)+=+i*j+ );System.out.println();/* * * 笔试之十七:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, * 还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 * 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 * 求第一天共摘了多少。 */public static void eatPeach()int sum=1;for(int i=0;i0;i+)temp=i;appleNumber=i;for(int j=0;j1)temp=(temp-1)*(N-1)/N;elsetemp=0;break; elseSystem.out.println(appleNumber);s.close();*/* *笔试之十八:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。 * 有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 */public static void matching()/* *笔试之十九: *打印菱形右瓣 */public static void diamond()for(int i=1;i=4;i+)for(int j=1;j=1;i-)for(int j=1;j=2*i-1;j+)System.out.print(*);System.out.println();/* * 笔试之二十: * 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。 */public static void sum(int n)double denominator=1.0;double molecular=2.0;double sum=0.0;for(int i=0;in;i+)sum+=molecular/denominator;double temp=molecular;molecular=molecular+denominator;denominator=temp;System.out.println(sum);/* * 笔试之二十一:求阶乘之和 * 求1+2!+3!+.+20!的和 */public static void factorialSum(int n)int sum=0;for(int i=1;i=n;i+)int temp=1;for(int j=1;j=i;j+)temp*=j;sum+=temp;System.out.println(sum);/* * 笔试之二十二:递归方法求5! * */public static int factorial(int n)int sum=1;for(int i=1;i=n;i+)sum=sum*i;return sum;/* * 笔试之二十三:递归算法 * 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。 * 问第4个人岁数,他说比第3个人大2岁。 * 问第3个人,又说比第2人大两岁。 * 问第2个人,说比第一个人大2岁。 * 最后问第一个人,他说是10岁。请问第五个人多大? */public static int age()int x=new int5;x0=10;for(int i=0;i4;i+)xi+1=xi+2;return x4; /* *笔试之二十四:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 */public static void biteNamber(int n)int m=0;int bite=0;for(int i=0;i5;i+)if(n!=0)m=n%10;n=n/10;bite+;System.out.print(m+ );elsebreak;System.out.println();System.out.println(此数的位数是:+bite);/* *笔试之二十五:一个x位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 */public static void palindromeNumber(int n)int array=new int5;for(int i=0;i5;i+)array4-i=n%10;n=n/10;for(int i=0;i5;i+)System.out.print(arrayi+ );System.out.println();if(array0=array4)if(array1=array3)System.out.println(此五位数是回文数);/* *笔试之二十六:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母 */public static void week(String str)/* *笔试之二十七:求100之内的素数 */public static void primeNumber() int j;for (int i = 2; i = 100; i+) for (j = 2; j Math.sqrt(i) System.out.print(i + );/* *笔试之二十八:取一个整数a从右端开始的47位。 */public static void getBit(long a)long temp=0;if(a1000000)System.out.println(a的值不足7位);elsea=a/1000;for(int i=0;i=1)temp=a%10;a=a/10;System.out.print(temp+ );else break;/* *笔试之二十九:求一个3*3矩阵对角线元素之和 */* *笔试之三十:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中 */public static void insert(int n, int array) int newArray = new intarray.length + 1;/ 先判断是升序还是降序if (array0 array1) System.out.println(原序列是升序排列的);if (n arrayarray.length - 1) newArrayarray.length = n; else for (int i = 0; i array.length; i+) if (n arrayi) newArrayi = n;for (int j = i + 1; j array0) newArray0 = n; else if (n arrayarray.length - 1) newArrayarray.length = n; else for (int i = 0; i arrayi) newArrayi = n;for (int j = i + 1; j newArray.length; j+) newArrayj = arrayj-1;bre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安嘉安全培训课件
- 淀粉鉴定实验课件
- 安利益生菌课件
- 海鸟的家园课件
- 海陵区安全员培训课件
- 海阳安全培训基地课件
- 货车驾驶员聘用合同协议书3篇
- 教师招聘之《幼儿教师招聘》考前冲刺练习试题附参考答案详解【培优】
- 教师招聘之《幼儿教师招聘》综合提升测试卷带答案详解(精练)
- 无机合成试题及答案
- 抖音:短视频与直播运营全套教学课件
- 低钠血症查房
- 2024年建筑业10项新技术
- 婴幼儿托育服务与管理
- 智能硬件简介
- 医院培训课件:《ICU获得性衰弱症及其干预》
- 市政工程质量常见问题专项治理技术方案
- DB21-T 3464-2021 辽西北地区食叶草栽培技术规程
- 机加工设备管理制度
- 厦门凯库勒新材有限公司导电浆料生产项目环境影响报告
- 艺术管理概论课件
评论
0/150
提交评论