阅读背景:

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

来源:互联网 
/**
 * 
 * @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+"种兑换方法。");
	}
}
/**
 * 
 * @author 鹿丸君
 *
 */
class HomeWork1
{



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: