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

这是一篇面向Java初学者的编程练习指南,包含5道基础编程题目,涉及字符串分析、数字计算、完数查找、物理运动模拟及数字组合。通过详细解答,帮助提升编程思维和基础技能。
摘要由CSDN通过智能技术生成

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

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

第一题

判断一个字符串中数字,字母,空格,其他字符各有多少

public static void stringCompareChar(){
		//声明一个字符串,用下面的字符串做判断
		String s="asd23        o23590*(&*484-9 ";
		//将字符串转为字符数组
		char[] chs=s.toCharArray();
		//声明数组,大小为4,分别用于记录数字,字母
		//空格,其他字符的个数
		int[] count=new int[4]; 
		//遍历字符数组
		for (int i = 0; i < chs.length; i++) {
			//判断是否为字母,大写字母65~90,小写字母97~122
			if(((int)(chs[i])>=65&&(int)(chs[i])<=90)||
					((int)(chs[i])>=97&&(int)(chs[i])<=122)){
				count[0]++;//字母
			}else if((int)(chs[i])>=48&&(int)(chs[i])<=57){
				count[1]++;//数字
			}else if((int)(chs[i])==32){
				count[2]++;//空格
			}else{
				count[3]++;//其他字符
			}
		}
		//输出结果
		for (int i = 0; i < count.length; i++) {
			System.out.println(count[i]);
		}
	}

第二题

求s=a+aa+aaa+aaaa+…+的值

public static void sumNumber(){
		Scanner input=new Scanner(System.in);
		System.out.println("请输入一个数字,控制几个数相加:");
		int count=input.nextInt();
		System.out.println("输入a的值");
		int a = input.nextInt();
		int sum=0;//和
		int num=0;//当前值,a,aa,aaa...
		for(int i=1;i<=count;i++){	
			num=num*10+a;//累加当前值,a,aa,aaa...
			sum=sum+num;//累加和
			System.out.println(num);//输出当前值
			System.out.println("sum="+sum);//输出累加和
			System.out.println("---------");
		}
	}

第三题

一个数恰好等于他的因子之和,这个数称为完数
求1000以内所有完数

public static void factorSumEqualsNumber(){
		int sum=0;//存放因子之和
		for(int i=1;i<=1000;i++){//遍历1000以内的数
			for(int j=1;j<i;j++){//因子肯定小于这个数本身
				if(i%j==0){//如果是因子
					sum+=j;//累加求和
				}
			}
			if(sum==i){//判断因子的和与这个数是否相等,相等输出这个数
				System.out.println(i);
			}
			sum=0;//对sum清0,用于存放下个数的因子和
		}
	}

第四题

一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下,求他在第10次落地时,共经过多少米,求第10次反弹多高

public static void dropBoll(){
		double height=100;//初始高度100米
		double sum=0;//总路程
		for(int i=0;i<9;i++){//从第二次下落开始计算,每次高度为原来的一半
			height=height/2.0;//高度为上一次的一半
			sum+=height*2;//计算路程
		}
		height/=2;
		sum+=100;//第一次下落100米
		System.out.println("总路程:"+sum);
		System.out.println("最后一次反弹:"+height);
	}

第五题

有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的3位数,都是多少

public static void groupNumber(){
		int count=0;//统计总数
		for(int i=1;i<5;i++){//取百位
			for(int j=1;j<5;j++){//取十位
				if(i!=j){//十位和百位不一样
					for(int k=1;k<5;k++){//取个位
						if(k!=i&&k!=j){//个位和十位百位不同
							System.out.println(i*100+j*10+k);//输出这个数
							count++;//次数家1
						}
					}

				}
			}
		}
		System.out.println("共"+count+"个");//输出总数
	}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值