每天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+"个");//输出总数
}
学习要循序渐进,思维慢慢培养,如果遇到程序异常要耐心检查,大多数都是语法错误,比如该大写没有大写,该加分号的没有分号,改写分号的写了其他符号。
耐心检查,你一定会成功!!