关于一些java基础语法的练习题代码
2014-05-15 14:31
405 查看
/** * * @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+"种兑换方法。"); } }
$(".MathJax").remove();
相关文章推荐
- 关于java基础的一些整理!
- Java 基础一些代码练习笔记(多态1)
- Java 基础一些代码练习笔记(ArrayList)
- Java 基础一些代码练习笔记(RandTest)
- Java 基础一些代码练习笔记( Interator)
- java基础学习篇——2、java语言的一些基本语法
- Java 基础一些代码练习笔记(Array数组)
- Java 基础一些代码练习笔记(LinkedList)
- Java 基础一些代码练习笔记(ArrayEquals)
- Java 基础一些代码练习笔记(HashMap)
- 关于java的一些基础知识和经验
- Java 基础一些代码练习笔记(StringBuffer)
- Java 基础一些代码练习笔记(static 关键字)
- Java 基础一些代码练习笔记(队列)
- java学习笔记,关于java的一些基础知识,适用于初学者,第一节
- Java 基础一些代码练习笔记(多态2)
- Java 基础一些代码练习笔记(抽象类)
- Java 基础一些代码练习笔记(object-equals 方法)
- Java 基础一些代码练习笔记( TreeSet 排序)
- Java 基础一些代码练习笔记(HashCode重写)