每天5道Java基础编程练习题(四)

每天5道Java基础编程练习题(四)

你好! 欢迎阅读,今天是第四天,本系列面向Java基础基础学习阶段程序猿,每天5道基础编程,希望能帮你慢慢培养编程思维,走进编程的世界(高手勿喷)
大量的注释让你更正确快速的阅读代码。
废话不多说,让我们直接进入正题

第一题

猴子吃桃,猴子第一天摘下若干桃子,当即吃了一半,不过瘾又吃了一个
第二天早上将剩下的吃了一半,又多吃了一个
以后每天早上都吃前一天剩下的一半,再多吃一个
到第10天,只剩下一个桃子,求第一天摘了几个

public static void monkeyEatPeach(){
		int x=1;//从最后一天开始倒过来算
		for(int i=1;i<10;i++){//第10天不算,共9天
			x=(x+1)*2;
		}
		System.out.println(x);
	}

第二题

两个乒乓球队进行比赛,各出3人。甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,试编程找出三队赛手的名单

public static void pingpangCompetition(){
		for(int i=1;i<4;i++){//甲队 1-a,2-b,3-c
			for(int j=1;j<4;j++){//乙队 1-x,2-y,3-z
				if(i==3&&(j==1||j==3)){//c不和xz比
					continue;//满足条件退出此次循环,继续下一次
				}
				if(i==1&&(j==1||j==2)){//a不和xy比
					continue;
				}
				if(i==2&&(j==2||j==3)){//b不和yz比
					continue;
				}
				//解码
				if(i==1){
					System.out.print("a,");
				}
				if(i==2){
					System.out.print("b,");
				}
				if(i==3){
					System.out.print("c,");
				}
				if(j==1){
					System.out.println("x");
				}
				if(j==2){
					System.out.println("y");
				}
				if(j==3){
					System.out.println("z");
				}
			}
		}
	}

第三题

有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,···
求出这个数列的前20项之和

public static void decimalsSequence(){
		double sum=0;//存放求和的值
		double[] num=new double[20];//存放分子的数组
		num[0]=2;//分子的第一位和第二位
		num[1]=3;
		double[] num1=new double[20];//存放分母的数组
		num1[0]=1;//分母的第一位和第二位
		num1[1]=2;
		for(int i=2;i<20;i++){//根据前两项计算出所有分子分母的值,后一项是前两项的和
			num[i]=num[i-1]+num[i-2];
			num1[i]=num1[i-1]+num1[i-2];
		}
		//输出所有的求和项
		for (int i = 0; i < num1.length; i++) {
			System.out.println(num[i]+"/"+num1[i]);
		}
		//进行求和
		for (int i = 0; i < num1.length; i++) {
			sum+=num[i]/num1[i];
		}
		//输出最终结果
		System.out.println("前20项的和为:"+sum);
	}

第四题

求1+2!+3!+。。。。。+20!的和

public static void factorial(){
		long sum=0;//long型变量,赋值时都要写l或L,0不用写
		for(int i=1;i<=20;i++){//阶乘的值
			long n=i;//保存阶乘的初始值,放在循环之中,每次新的阶乘可以初始化
			for(int j=i-1;j>0;j--){//阶乘
				n=n*j;
			}
			System.out.println(i+"的阶乘是"+n);
			sum+=n;//累加
		}
		System.out.println(sum);//输出结果
	}

第五题

给一个不多于5位的数,要求:
1.求它是几位数
2.逆序打印出各位数字

public static void demandNumberLength(){
		System.out.println("输入一个数(不超过5位):");
		//输入为字符串,方便处理
		String num= new Scanner(System.in).next();
		//调用Java中的方法,将字符串转换为字符数组
		//字符数组的长度就代表这个数的位数
		char[] chs=num.toCharArray();
		//输出他的位数
		System.out.println("它的长度为:"+chs.length);
		//从数组最后一位开始打印
		System.out.println("逆序输出:");
		for (int i = chs.length-1; i >=0; i--) {
			System.out.println(chs[i]);
		}
	}

学习要循序渐进,思维慢慢培养,如果遇到程序异常要耐心检查,大多数都是语法错误,比如该大写没有大写,该加分号的没有分号,改写分号的写了其他符号。
耐心检查,你一定会成功!!
第四天,加油!!

  • 24
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值