Java练习记录 二charAt()函数

分段函数求值

在第一遍出现错误是最后一个else里写出判断条件,结果无法运行。

		Scanner in= new Scanner(System.in);
		int x=in.nextInt();
		int y=0;
		if(x<1)
			y=x;
		else if(x>=1&&x<10)
			y=2*x-1;
		else 
			y=3*x-11;
		System.out.println(y);

	}

}

成绩测评

主要是运用switch语句,第一遍输出出错,因为用了putchar()

import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int grade=in.nextInt();
		int a;
		a=grade/10;
		switch(a)
		{
			case 10:
				System.out.print("A");
				break;
			case 9:
				System.out.print("A");
				break;
			case 8:
				System.out.print("B");
				break;
			case 7:
				System.out.print("C");
				break;
			case 6:
				System.out.print("D");
				break;
			default:
				System.out.print("E");
				break;
		}
		
	}

}

数字的处理与判断

在写程序出现的问题:
数字串的输入
String属于字符串数据类型

Scanner sc= new Scanner(System.in);
		String a=sc.nextLine();

判断数位
也可以不定义num直接用length

int num=a.length();
		System.out.println(num);

分别输出的方法

注意charAt()检索字符串

for(int i=0;i<num;i++)
		{
			System.out.print(a.charAt(i)+" ");
		}
		System.out.printf("\n");
		
		for(int j=num-1;j>=0;j--)
			System.out.print(a.charAt(j));

最大公约数 最小公倍数

过程较为熟练

		Scanner in =new Scanner(System.in);
		int a,b,result=1;
		int gcd=1;//公约数
		int lcm=1;//公倍数
		a=in.nextInt();
		b=in.nextInt();
	
		for(int i=2;i<=a&&i<=b;i++)
		{
			if(a%i==0&&b%i==0)
			{
				gcd=gcd*i;
				a=a/i;
				b=b/i;
			}
		}
		lcm=gcd*a*b;
		System.out.print(gcd+" "+lcm);
	}
}

字符串统计

注意使用 charAt()

import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String num=in.nextLine();
		int a=0,b=0,c=0,d=0;
		for(int i=0;i<num.length();i++)
		{
			if(num.charAt(i)>='a'&&num.charAt(i)<='z'||num.charAt(i)>='A'&&num.charAt(i)<='Z')
				a++;
			else if(num.charAt(i)>='0'&&num.charAt(i)<='9')
				b++;
			else if(num.charAt(i)==' ')
				c++;
			else
				d++;
		}
		System.out.print(a+" "+b+" "+c+" "+d+" ");
		
	}

}

求阶乘

具体的方法和c语言练习的方法相同


		Scanner in=new Scanner(System.in);
		int n;
		n=in.nextInt();
		long sum=0;//int long
		for(int i=1;i<=n;i++)
		{
			long k=1;//之前使用int在网站上提示答案错误
			for(int j=1;j<=i;j++)
			{
				k=k*j;
			}
			sum=sum+k;
		}
		System.out.println(sum);
	}

}

求和训练


		Scanner in=new Scanner(System.in);
		int a;
		double  b,c;
		a=in.nextInt();
		b=in.nextInt();
		c=in.nextInt();
		int sum1=0;
		double sum2=0.0,sum3=0.0;
		for(int i=1;i<=a;i++)
		{
		    sum1=sum1+i;
		}
		for(int  j=1;j<=b;j++)
		{
		    sum2=sum2+Math.pow(j,2);
		}
		for(int k=1;k<=c;k++)
		{
		    sum3=sum3+1.0/k;
		}
		System.out.printf("%.2f",sum1+sum2+sum3);
	}

}

注意:
对于c的定义,对于sum3的定义,需要用double类型
平方使用Math.pow()注意幂也要写入
在使用分数计算的时候需要/的左右两侧有一个浮点型
最后的结果可以用printf 进行相应格式的输出

水仙花数判断

主要的步骤和c语言相似。


	for(int i=100;i<999;i++){
            int a=i%10;
            int b=i/10%10;
            int c=i/100;
            if(a*a*a+b*b*b+c*c*c==i){
                System.out.println(i);
            }
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值