学完之前这么多内容,不能纸上谈兵,也得做做练习,巩固巩固知识,这里我给大家一些经典例题,这些例题用至今为止讲过的题目都是可以解决的,这里我给出题目和答案建议先独立完成之后再看答案,这样效果最 佳,若是答案有不懂的可以在评论和私信我,我会耐心给你解答。
1、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2、判断101-200之间有多少个素数,并输出所有素数。
3、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后 每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少(计算30个月的)?
4、将一个正整数分解质因数。
5、一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
6、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
7、输入两个正整数m和n,求其最大公约数和最小公倍数
1、
public class staticnumber {
public static void main(String[] args) {
//输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
int Number=0;
int Letter=0;
int Spacechar=0;
int Other=0;
Scanner input= new Scanner(System.in);
System.out.println("请输入字符串:");
String a = input.nextLine();
char [] b = a.toCharArray();//将字符串变成一个数组 字符串名.toCharArray()
for (int i = 0; i <b.length ; i++) {
if(b[i]>='A' && b[i]<='z')
Letter++;
else if(b[i]>='0' && b[i]<='9')
Number++;
else if(b[i]==' ')
Spacechar++;
else
Other++;
}
System.out.println("该字符串有数字:"+Number+"个 有字母:"+Letter+"个 有空格:"+Spacechar+"个 其他有:"+Other);
}
}
2、
public class sushu {
public static void main(String[] args) {
//判断101-200之间有多少个素数,并输出所有素数。
for (int i=101;i<=200;i++){
for (int j=2;j<i;j++){
if (i%j!=0){
System.out.println(i);
}
}
}
}
}
3、
public class tuzi {
public static void main(String[] args) {
/*
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后
每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少(计算30个月的)?
*/
int num=1;
int num2=1;
int a;
long b;
System.out.print("请输入你想了解的月数:");
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
for (int i=1;i<=a;i++){
if (i==1){
System.out.println("第1个月一共有"+num+"只兔子");
}else if (i==2){
System.out.println("第2个月一共有"+num2+"只兔子");
}else {
int c=num2;
num2=num+num2;
num=c;
System.out.println("第"+i+"个月一共有"+num2+"只兔子");
}
}
}
}
4、
public class yingshufenjie {
public static void main(String[] args) {
//将一个正整数分解质因数。
Scanner num=new Scanner(System.in);
System.out.println("输入你想分解的数:");
int a=num.nextInt();
for (int i=1;i<=a;i++){
if (a%i==0){
int b=a/i;
System.out.print(b);
System.out.print("*");
System.out.print(i);
System.out.print("=");
System.out.print(i*b);
System.out.println();
}
}
}
}
5、
public class yinshu {
public static void main(String[] args) {
//一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
for (int i = 2; i < 1000; i++) {
//判断i是不是完数
int num = 0;
for (int j = 1; j <= i / 2; j++) {
//找因子
if (i % j == 0) {
num += j;
}
}
if (i == num) {
System.out.println("完数有" + i);
}
}
}
}
6、
public class 控制 {
public static void main(String[] args) {
//求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
Scanner sc=new Scanner(System.in);
System.out.println("请输入要想加的数量:");
int num1=sc.nextInt();
System.out.println("输入你想加的数:");
int a=sc.nextInt();
int s=a;
int sum2 = a;
for (int i=1;i<=num1;i++){
if (i==1){
System.out.print("相加的值为:");
System.out.println(s);
}else{
a=a*10;
sum2+=a;
s+=sum2;
System.out.print("相加的值为:");
System.out.println(s);
}
}
}
}
7、
public class 最大公因数和最小公倍数 {
public static void main(String[] args) {
//输入两个正整数m和n,求其最大公约数和最小公倍数
Scanner c = new Scanner(System.in);
System.out.print("请输入2个数:");
int m = c.nextInt();
int n = c.nextInt();
int max1 = m > n ? m : n;
int min1 = m < n ? m : n;
int i = max1 % min1;
int j=max1;
do {
if (i != 0) {
max1 = min1;
min1 = i;
}
i=max1%min1;
} while (i != 0);
System.out.println("最大公因数:"+min1);
System.out.println("最小公倍数:"+j* min1/min1);
}
}