关于一些java基础语法的练习题代码

来源:互联网 发布:java面试一般问什么 编辑:程序博客网 时间:2024/05/20 05:05
/** *  * @author 鹿丸君 * */class HomeWork1{public static void main(String[] args) {exer1();num();leapYear(1900,2100);chart();Age();calAandB();prime();shuiXianHua();System.out.println("<2.8> calE(15):e="+calE(15)+",calE(35):e="+calE(35));num1(24);num2(21,36);num2(48,36);num2(21,23);person();count1();count2();countNum();money();}/**练习1设int a=3,b=-4,c=5;double x=2.5,y=4.7;double z;计算以下各式中z的结果:1. z=x+a%2*(int)(x=y)%3/2f;2. z=(float)(a+b)/2+(int)x%(int)y;3. z=32+'A'-2/3*5;4. z=a=b=c+2/5;5. z=18+(b=4)*3;6. z=(a>b)?a:b;7. z=a++-c+b++;8. z=++a-c+(++b);9. z=++a-c+++b;10.z=a+=a-=a*=a;*/private static void exer1(){System.out.println("\n练习一:");for(int i=1;i<=10;i++){int a=3,b=-4,c=5;double x=2.5,y=4.7;double z = 0;switch(i){case 1:z=x+a%2*(int)(x=y)%3/2f;break;case 2:z=(float)(a+b)/2+(int)x%(int)y;break;case 3:z=32+'A'-2/3*5;break;case 4:z=a=b=c+2/5;break;case 5:z=18+(b=4)*3;break;case 6:z=(a>b)?a:b;break;case 7:z=a++-c+b++;break;case 8:z=++a-c+(++b);break;case 9:z=++a-c+++b;break;case 10:z=a+=a-=a*=a;break;default:break;}System.out.println("第"+i+"个式子的值是"+z);}}/**练习二*//**1,屏幕输出1~100之间能被3整除且个位是6的数。*/private static void num(){System.out.print("\n练习二:\n<2.1> 1~100之间能被3整除且个位是6的数有:");for(int i=1;i<=100;i++){if((i%3==0)&&(i%10==6))System.out.print(i+" ");}}/**2,自定义方法,该方法能够输出1900年到2100年之间的闰年,一行输出4个,用逗号分隔。(能被4整除且不能被100整除的为闰年;能被400整除的是闰年。)*/private static void leapYear(int start,int end) {System.out.println("\n<2.2> 1900年~2100年之间的闰年有:");int num=0;for(int i=start;i<=end;i++){if(((i%4==0)&&(i%100!=0))||(i%400==0)){System.out.print(i+",");num++;if(num%4==0)System.out.println();}}}/**3,自定义方法,该方法能够输出九九乘法表。*/private static void chart(){System.out.println("\n<2.3> 九九乘法表:");int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)System.out.print(i+"x"+j+"="+i*j+"\t");System.out.println();}}/**4,李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他的岁数之和是873,计算李先生及其夫人的岁数各是多少。*/private static void Age() {int i=0,j;do{for(j=0;j<100;j++){if((i*i+j==1053)&&(j*j+i==873))System.out.println("<2.4> 李先生的年龄是"+i+",李夫人的年龄是"+j);}i++;}while(i!=100);}/**5,有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小。*/private static void calAandB(){int b=0;int sum=9999999;int min=0;for(int a=1;a<2048;a++){b=2048/a;if(a*b==2048){if(a+b<sum){sum=a+b;min=a;}}}System.out.println("<2.5> a="+min+",b="+(2048/min)+",sum="+sum);}/**6,自定义方法,该方法能够输出10~100之间的全部素数。(素数是指只能被1和自身整除的数)。*/private static void prime(){System.out.print("<2.6> 10~100之间的素数:");int i,j;for(i=10;i<100;i++){for(j=2;j<Math.sqrt(i);j++){if(i%j==0) break;}if(j>Math.sqrt(i)) System.out.print(i+" ");}}/**7,自定义方法,该方法能够输出所有的水仙花数。水仙花数是一个三位数,其各位数字的立方和等于该数本身,如153 =1^3 + 5^3 + 3^3*/private static void shuiXianHua(){System.out.print("\n<2.7> 水仙花数有:");for(int i=100;i<1000;i++){int h=i/100;int t=i/10%10;int u=i%10;if(i==h*h*h+t*t*t+u*u*u){System.out.print(i+" ");}}System.out.println();}/**8,编写程序计算e的近似值。e=1+1/1!+1/2!+1/3!...+1/n! (n值可变) */private static double calE(int n){double e=1;for(int i=1;i<=n;i++){e+=(1/jieCheng(i));}return e;}private static double jieCheng(int v){double r=1;for(int i=2;i<=v;i++){r*=i;}return r;}/**练习3*//** 1,编写一个方法,该方法接收一个整型参数,并实现如下功能:从参数开始往后找,找到第4个能被7整除的数并返回。*/private static void num1(int i){System.out.print("\n练习三:\n<3.1> "+i+"之后的第4个能被7整除的数是:");int num=0;do{i++;if(i%7==0) num++;}while(num!=4);System.out.println(i);}/**2,编写一个方法,接收两个整型参数a和b,并实现如下功能:如果a<=b,那么在[a,b]范围内查找第一个能被5整除的数并返回,如果未找到,则返回-1。如果a>b,则查找范围变为[b,a]。*/private static void num2(int a,int b){System.out.print("<3.2> ");boolean flag=false;if(a>b){int t=b;b=a;a=t;}for(int i=a;i<=b;i++){if(i%5==0){flag=true;System.out.println(a+"到"+b+"中第一个能被5整除的数是"+i);break;}}if(!flag){System.out.println(a+"到"+b+"中没有能被5整除的数:"+-1);}}/**3,某数学竞赛中,参赛人数大约在380~450人之间。比赛结果,全体考生的总平均分为76分,男生的平均分为75分,女生的平均分为80.1分,求男女生各有多少人?*/private static void person(){int x,i;for(i=380;i<=450;i++){for(x=1;x<i;x++){if((76*i)==(75*x+80.1*(i-x)))System.out.println("<3.3> 男生有"+x+"人,女生有"+(i-x)+"人。");}}}/**4,一个四位数,恰好等于去掉它的首位数字之后所剩的三位数的3倍,这个四位数是多少?*/private static void count1(){for(int i=1000;i<=9999;i++){if(i==3*(i%1000)) System.out.println("<3.4> 这个四位数是"+i);}}/**5,有一个两位数,如果在它的前面添一个3,可得到一个三位数;把3添在它的后面,也可以得到一个三位数;两次得到的三位数相差468,求原来的两位数。*/private static void count2(){for(int i=10;i<99;i++){if(i*10+3-(300+i)==468)System.out.println("<3.5> 这个两位数是"+i);}}/**6,输出四位自然数中各位数字之和为6并且各位数字互不相同的数,并统计个数。*/private static void countNum(){System.out.println("<3.6> 四位自然数中各位数字之和为6并且各位数字互不相同的数有:");int count=0;for(int i=1000;i<10000;i++){if(check(i)){System.out.print("  "+i);count++;}}System.out.println("\n       一共有"+count+"个。");}private static boolean check(int v){int t1=v/1000;int h=v/100%10;int t2=v/10%10;int u=v%10;if(t1==t2||t1==h||t1==u||h==t2||h==u||t2==u){return false;}if(t1+h+t2+u==6){return true;}return false;}/**7,将100元纸币兑换成10元、5元和1元纸币共20张,输出各种兑换法,并统计个数。 */private static void money(){System.out.println("<3.7> 兑换方式如下:");int a,b,c,count=0;for(a=0;a<=10;a++)for(b=0;b<=20;b++)for(c=0;c<=100;c++)if(((a+b+c)==20)&&(10*a+5*b+c==100)){System.out.println("10元张数:"+a+", 5元张数"+b+", 1元张数:"+c);count++;}System.out.println("一共有"+count+"种兑换方法。");}}

0 0