分段函数求值
在第一遍出现错误是最后一个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);
}
}