【题目1】有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,则每个月的兔子总数为多少。
functionmainFun(){for(leti=1;i<=20;i++){console.log(`${i}月兔子总数:${getEveryMonthNum(i)}`);}}functiongetEveryMonthNum(month){if(month==1||month==2){return1;}else{returngetEveryMonthNum(month-1)+getEveryMonthNum(month-2);}}mainFun();结果:
1月兔子总数:1只2月兔子总数:1只3月兔子总数:2只4月兔子总数:3只5月兔子总数:5只6月兔子总数:8只7月兔子总数:13只8月兔子总数:21只9月兔子总数:34只10月兔子总数:55只11月兔子总数:89只12月兔子总数:144只13月兔子总数:233只14月兔子总数:377只15月兔子总数:610只16月兔子总数:987只17月兔子总数:1597只18月兔子总数:2584只19月兔子总数:4181只20月兔子总数:6765只【题目2】判断1-100之间有多少个素数,并输出所有素数(素数的定义:一个大于1的自然数,除了1和它本身外,不能整除以其他自然数,换句话说就是该数除了1和它本身以外不再有其他的因数的数才是素数)。
functionmainFun(){letnum=0;for(leti=0;i<=100;i++){letflog=true;if(i===0)continue;for(letj=2;j<=Math.sqrt(i);j++){//Math.sqrt(i)求平方根if(i%j===0)flog=false;}if(flog){console.log(i);num++;}}console.log(`0-100之间所有素数个数:${num}。`);}mainFun();123571113171923293137414347535961677173798389970-100之间所有素数个数:26。【题目3】打印出所有的水仙花数。所谓水仙花数,是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。
functionmainFun(){for(leti=100;i<=999;i++){constgw=i%10;constsw=parseInt(i/10)%10;constbw=parseInt(i/100);if(i===Math.pow(gw,3)+Math.pow(sw,3)+Math.pow(bw,3)){console.log(i);}}}mainFun();【题目4】将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
functionmainFun(arg){letnum=arg,arr=[];for(leti=2;i<=Math.sqrt(arg);i++){if(arg%i===0){arr.push(i);arg/=i;i--;}}console.log(`${num}=${arr.join('*')}*${arg}`)}mainFun(90);结果:
90=2*3*3*5【题目5】利用条件运算符的嵌套来完成此题:90分及以上的同学用A表示,60~89分之间的用B表示,60分以下的用C表示。
functionmainFun(arg){returnarg>100||arg<0'Error':arg>=90'A':arg<60'C':'B';}console.log(mainFun(90));结果
A【题目6】输入两个正整数m和n,求其最大公约数和最小公倍数。
functionmainFun(x,y){letm=x,n=y,greatestCommonDivisor=0;while(true){if((m=m%n)===0){greatestCommonDivisor=n;break;}if((n=n%m)===0){greatestCommonDivisor=m;break;}}constleastCommonMultiple=x*y/greatestCommonDivisor;return"最大公约数:"+greatestCommonDivisor+"\n最小公倍数:"+leastCommonMultiple;}console.log(mainFun(9,2));结果:
最大公约数:1最小公倍数:18【题目7】输入一行字符,分别统计出其中英文字母、空格、数字、中文和其它字符的个数。
functionmainFun(arg){letspace=0,//空格letter=0,//字母digit=0,//数字cn=0,//中文other=0;//其他字符conststrs=arg.split('');for(conststrofstrs){if(/\s/g.test(str))space++;elseif(/[a-zA-Z]/g.test(str))letter++;elseif(/\d/g.test(str))digit++;elseif(/[\u4e00-\u9fa5]/g.test(str))cn++;elseother++;}return`空格:${space}\n字母:${letter}\n数字:${digit}\n中文:${cn}\n其他字符:${other}`}console.log(mainFun('abCD$哈哈'));结果:
空格:2字母:4数字:0中文:2其他字符:1【题目8】求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,几个数相加由键盘控制。
functionmainFun(a,n){lettemp=a,sum=a;for(leti=1;i 123【题目9】一个数如果恰好等于它的因子之和,这个数就称为完数,例如6=1+2+3。编程找出1000以内的所有完数。 constmainFunc=()=>{for(leti=1;i<1000;i++){letsum=0;for(letj=1;j<=i/2;j++){if(i%j==0){sum+=j;}}if(i==sum){console.log(i);}}}mainFunc();结果: 628496【题目10】一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下。求它在第10次落地时,共经过多少米,第10次反弹多高。 constmainFunc=()=>{lets=0,h=100;for(leti=1;i<=10;i++){s+=h;h/=2;s+=h;}console.log("经过路程:"+(s-h));console.log("反弹高度:"+h);}mainFunc();结果: 经过路程:299.609375反弹高度:0.09765625【题目11】有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? constmainFunc=()=>{letnums=[];for(leta=1;a<=4;a++){for(letb=1;b<=4;b++){for(letc=1;c<=4;c++){if(a!=b&&b!=c&&c!=a){nums.push(""+a+b+c);}}}}console.log(nums,'\n数量:'+nums.length);}mainFunc();结果: ['123','124','132','134','142','143','213','214','231','234','241','243','312','314','321','324','341','342','412','413','421','423','431','432']数量:24【题目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万元时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数? constmainFunc=(num)=>{letbonus=num>10num>20num>40num>60num>100function100_(num):function60_100(num):function40_60(num):function20_40(num):function10_20(num):function_10(num);console.log(bonus);}mainFunc(120);functionfunction_10(num){returnnum*0.1;}functionfunction10_20(num){return(num-10)*0.075+function_10(10);}functionfunction20_40(num){return(num-20)*0.05+function10_20(20);}functionfunction40_60(num){return(num-40)*0.03+function20_40(40);}functionfunction60_100(num){return(num-60)*0.015+function40_60(60);}functionfunction100_(num){return(num-100)*0.01+function60_100(100);}结果: 4.15【题目13】一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?packageleif; publicclassTest{publicstaticvoidmain(String[]args){for(inti=-100;i<=10000;i++){if(Math.sqrt(i+100)%1==0){if(Math.sqrt(i+100+168)%1==0){System.out.println(i);}}}}}【题目14】输入某年某月某日,判断这一天是这一年的第几天。packageleif; importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Scanner; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Stringdate=scanner.next();Calendarcalendar=Calendar.getInstance(); try{calendar.setTime(newSimpleDateFormat("yyyy-MM-dd").parse(date));System.out.println(calendar.get(Calendar.DAY_OF_YEAR));}catch(ParseExceptione){e.printStackTrace();}finally{scanner.close();}}}【题目15】输入三个整数x、y、z,请把这三个数由小到大输出。packageleif; importjava.util.Arrays;importjava.util.Scanner; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);intx=scanner.nextInt();inty=scanner.nextInt();intz=scanner.nextInt();int[]is={x,y,z};Arrays.sort(is);System.out.println(Arrays.toString(is));scanner.close();}}【题目16】打印九九乘法表。packageleif; publicclassTest{publicstaticvoidmain(String[]args){for(inti=1;i<=9;i++){for(intj=1;j<=i;j++){System.out.print(j+"*"+i+"="+(i*j)+"\t");} System.out.println();}}}【题目17】猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。packageleif; publicclassTest{publicstaticvoidmain(String[]args){intpeach=1; for(inti=9;i>=1;i--){peach=(peach+1)*2;}System.out.println(peach);}}【题目18】两个乒乓球队进行比赛,各出三人,甲队为a、b、c三人,乙队为x、y、z三人,已抽签决定比赛名单。有人向队员打听比赛的名单,a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。packageleif; publicclassTest{publicstaticvoidmain(String[]args){char[]m={'a','b','c'};char[]n={'x','y','z'}; for(inti=0;i packageleif; importjava.util.Scanner; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);inti=scanner.nextInt(); for(introw=1;row<=i;row++){for(intcol=1;col<=Math.abs((i+1)/2-row);col++){System.out.print("");}for(intcol=1;col<=i-2*Math.abs((i+1)/2-row);col++){System.out.print("*");}System.out.println();}scanner.close();}}【题目20】有一分数序列:2/1、3/2、5/3、8/5、13/8、21/13……求出这个数列的前20项之和。packageleif; publicclassTest{publicstaticvoidmain(String[]args){doublesum=0; for(inti=1;i<=20;i++){sum+=getNumerator(i)/getDenominator(i);}System.out.println(sum);}publicstaticdoublegetNumerator(intnumerator){if(numerator==1){return2;}elseif(numerator==2){return3;}else{returngetNumerator(numerator-1)+getNumerator(numerator-2);}}publicstaticdoublegetDenominator(intdenominator){if(denominator==1){return1;}elseif(denominator==2){return2;}else{returngetNumerator(denominator-1)+getNumerator(denominator-2);}}}【题目21】求1!+2!+3!+…+20!的和。packageleif; publicclassTest{publicstaticvoidmain(String[]args){intsum=0; for(inti=1;i<=20;i++){sum+=getFactorial(i);}System.out.println(sum);}publicstaticintgetFactorial(intnumber){if(number==1){return1;}else{returnnumber*getFactorial(number-1);}}}【题目22】利用递归方法求5!。packageleif; publicclassTest{publicstaticvoidmain(String[]args){System.out.println(getFactorial(5));} publicstaticintgetFactorial(intnumber){if(number==1){return1;}else{returnnumber*getFactorial(number-1);}}}【题目23】有五个人坐在一起,问第5个人的岁数,他说比第4个人大两岁,问第4个人的岁数,他说比第3个人大两岁,问第三个人的岁数,他说比第2个人大两岁,问第2个人的岁数,他说比第1个人大两岁,最后问第1个人,他说是10岁。请问第五个人多大?packageleif; publicclassTest{publicstaticvoidmain(String[]args){intage=10; for(inti=4;i>=1;i--){age+=2;}System.out.println(age);}}【题目24】输入一个不多于5位的正整数,求它是几位数并逆序打印出各位数字。packageleif; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);inti=10000; while((i=scanner.nextInt())>=10000||i<=0){System.out.println("输入一个不多于5位的正整数");}StringBuilderstringBuilder=newStringBuilder(i+"");System.out.println(stringBuilder.length());System.out.println(stringBuilder.reverse());scanner.close();}}【题目25】输入一个5位数,判断它是不是回文数。即个位与万位相同、十位与千位相同。packageleif; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);inti=0; while((i=scanner.nextInt())>99999||i<10000){System.out.println("输入一个5位数");}StringBuilderstringBuilder=newStringBuilder(i+"");System.out.println(stringBuilder.toString().equals(stringBuilder.reverse().toString())"是回文数":"不是回文数");scanner.close();}}【题目26】请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。packageleif; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.print("请输入第一个字母:");Stringletter1=scanner.next(); switch(letter1){case"m":case"M":System.out.println("星期一");break;case"t":case"T":System.out.print("请输入第二个字母:");Stringletter2=scanner.next();switch(letter2){case"u":case"U":System.out.println("星期二");break;case"h":case"H":System.out.println("星期四");break;default:System.out.println("Error");break;}break;case"w":case"W":System.out.println("星期三");break;case"f":case"F":System.out.println("星期五");break;case"s":case"S":System.out.print("请输入第二个字母:");Stringletter3=scanner.next();switch(letter3){case"a":case"A":System.out.println("星期六");break;case"u":case"U":System.out.println("星期日");break;default:System.out.println("Error");break;}break;default:System.out.println("Error");break;}scanner.close();}}【题目27】求100之内的素数。packageleif; publicclassTest{publicstaticvoidmain(String[]args){label:for(inti=2;i<100;i++){for(intj=2;j<=Math.sqrt(i);j++){if(i%j==0){continuelabel;}} System.out.println(i);}}}【题目28】对10个数进行排序。packageleif; importjava.util.Arrays; publicclassTest{publicstaticvoidmain(String[]args){int[]is=newint[10]; for(inti=0;i publicclassTest{publicstaticvoidmain(String[]args){int[][]iss=newint[3][3]; for(inti=0;i importjava.util.Arrays;importjava.util.Comparator;importjava.util.Scanner; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Integer[]is=newInteger[10]; for(inti=0;i for(inti=0;i publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);inti=scanner.nextInt();Stringstring=String.valueOf(i);System.out.println(string.substring(string.length()-7,string.length()-4+1));scanner.close();}}【题目33】打印出杨辉三角形。packageleif; importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);intnumRows=scanner.nextInt();List for(introw=0;row publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);int[]is=newint[3];is[0]=scanner.nextInt();is[1]=scanner.nextInt();is[2]=scanner.nextInt();Arrays.sort(is);System.out.println(Arrays.toString(is));scanner.close();}}【题目35】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。packageleif; for(inti=0;i importjava.util.LinkedList;importjava.util.Queue; publicclassTest{publicstaticvoidmain(String[]args){QueueiQueue=newLinkedList(); intn=(int)(Math.random()*10+1);System.out.println(n);for(inti=0;i importjava.util.LinkedList;importjava.util.List; publicclassTest{publicstaticvoidmain(String[]args){ListiList=newLinkedList();intn=(int)(Math.random()*10+1);System.out.println(n); for(inti=1;i<=n;i++){iList.add(i);}intk=(int)(Math.random()*10+1);System.out.println(k);intm=(int)(Math.random()*10+1);System.out.println(m);while(iList.size()>1){System.out.println(iList);k=(k+m-1)%n;if(k==0){k=iList.size();}iList.remove(k-1);n-=1;}System.out.println(iList);}}【题目38】编写一个方法求一个字符串的长度。packageleif; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println(function(scanner.nextLine()));scanner.close();} publicstaticintfunction(Strings){returns.length();}}【题目39】编写一个方法,当n为偶数时,调用方法求1/2+1/4+…+1/n,当n为奇数时,调用方法求1/1+1/3+…+1/n。packageleif; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println(function(scanner.nextInt()));scanner.close();} publicstaticdoublefunction(intn){doublesum=0;if(n%2==0){for(inti=2;i<=n;i+=2){sum+=1.0/i;}}else{for(inti=1;i<=n;i+=2){sum+=1.0/i;}}returnsum;}}【题目40】字符串排序。packageleif; importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.Random; publicclassTest{publicstaticvoidmain(String[]args){Randomrandom=newRandom();ListsList=newArrayList(); for(inti=1;i<=10;i++){StringBuilderstringBuilder=newStringBuilder();for(intj=1;j<=10;j++){stringBuilder.append((char)random.nextInt(128));}sList.add(stringBuilder.toString());}System.out.println(sList);Collections.sort(sList);System.out.println(sList);}}【题目41】海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份;第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?packageleif; publicclassTest{publicstaticvoidmain(String[]args){intsum=6; for(inti=4;i>=1;i--){sum=sum*5+1;}System.out.println(sum);}}【题目42】已知809*=800*+9*,其中代表的两位数,8*的结果为两位数,9*的结果为3位数。求代表的两位数及809*后的结果。packageleif; publicclassTest{publicstaticvoidmain(String[]args){for(inti=12;i<=12;i++){if(809*i==800*i+9*i){System.out.println(i+""+(809*i));}}}}【题目43】求0~7所能组成的奇数个数(数字不能重复)。packageleif; publicclassTest{publicstaticvoidmain(String[]args){intsum=4*6; for(inti=0;i<6;i++){sum*=6-i;}System.out.println(sum);}}【题目44】哥德巴赫猜想:证明一个大于2的偶数总能表示为两个素数之和。packageleif; publicclassTest{publicstaticvoidmain(String[]args){for(intn=2;n<=100;n+=2){for(inti=2;i<=n-2;i++){if(function(i)){if(function(n-i)){System.out.println(n+"="+i+"+"+(n-i));}}}}} publicstaticbooleanfunction(intn){for(inti=2;i<=Math.sqrt(n);i++){if(n%i==0){returnfalse;}}returntrue;}}【题目45】判断一个素数能把几个9整除,如999999%7=0。packageleif; importjava.util.ArrayList;importjava.util.List; publicclassTest{publicstaticvoidmain(String[]args){label:for(inti:function()){StringBuilderstringBuilder=newStringBuilder("9"); while(true){longl=0L;try{l=Long.valueOf(stringBuilder.toString());}catch(NumberFormatExceptione){System.out.println(i+"NumberFormatException");continuelabel;}if(l%i==0){System.out.println(stringBuilder+"%"+i+"=0");continuelabel;}stringBuilder.append(9);}}}publicstaticList publicclassTest{publicstaticvoidmain(String[]args){Strings1="1";longtime=System.currentTimeMillis(); publicclassTest{publicstaticvoidmain(String[]args){for(inti=1;i<=7;i++){intrandom=(int)(Math.random()*50+1);System.out.println(random); publicclassTest{publicstaticvoidmain(String[]args){inti=(int)(Math.random()*9000+1000);System.out.println(i);inta=i/1000;intb=i/100%10;intc=i/10%10;intd=i%10;System.out.println(""+(d+5)%10+(c+5)%10+(b+5)%10+(a+5)%10);}}【题目49】计算字符串中子串出现的次数。packageleif; importjava.util.Scanner;importjava.util.regex.Matcher;importjava.util.regex.Pattern; publicclassTest{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println("请输入一个字符串:");Strings1=scanner.nextLine();System.out.println("请输入要查找的子字符串:");Strings2=scanner.nextLine();Patternpattern=Pattern.compile(s2,Pattern.CANON_EQ);Matchermatcher=pattern.matcher(s1);intcounter=0; while(matcher.find()){counter++;}System.out.println(s2+"在"+s1+"出现的次数为:"+counter);scanner.close();}}【题目50】有2个学生,每个学生有3门课的成绩,从磁盘文件中分别读入每个学生的学号、姓名和三门课成绩,计算出每个学生的总成绩,把原有的数据和计算出的数据输出到磁盘文件中。 importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List; importorg.dom4j.Attribute;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importorg.dom4j.io.OutputFormat;importorg.dom4j.io.SAXReader;importorg.dom4j.io.XMLWriter; publicclassTest{publicstaticvoidmain(String[]args){ListstudentList=newArrayList();Filefile=newFile("C:\Users\Administrator\Desktop\test50.xml");SAXReadersaxReader=newSAXReader();saxReader.setEncoding("UTF-8"); classStudent{privateintid;privateStringname;privateListsubjectList=newArrayList();privatedoubletotalScore; publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicList classSubject{privateStringname;privatedoublescore; publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicdoublegetScore(){returnscore;}publicvoidsetScore(doublescore){this.score=score;}@OverridepublicStringtoString(){return"Subject[name="+name+",score="+score+"]";}
rowList=newArrayList
();