Java循环练习题2

循环:通过某个条件,重复的执行一段逻辑代码。
附:Java循环基础知识框架思维导图

循环练习题

  1. 输入一个数字,然后分解质因数,例如:输入20,输出:20=2x2x5
  2. 案例:使用循环输出菱形
  3. 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字,例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
  4. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
  5. 编写一个程序,根据输入某个班级学员的成绩,计算该班级学员的平均成绩,
    班级的人数要求用户输入,根据输入的人数,分别录入学员的成绩,计算该
    班级学员的平均成绩,并显示计算结果。
  6. 输入两个数,求两个数的最小公倍数
  7. 五位数中,对称的数称为回文数,找出所有的回文数。如12321(***)
1.输入一个数字,然后分解质因数,例如:输入20,输出:20=2x2x5**
//1. 输入一个数字,然后分解质因数,例如:输入20,输出:20=2x2x5
import java.util.Scanner;
public class Test1{
 public static void main(String[] args){
  System.out.println("请输入一个要分解的正整数:");
  int n = new Scanner(System.in).nextInt();
  System.out.print(n+"=");//输出n=
  for(int i=2;i<=n;i++){  //遍历寻找除数
   while(n%i==0&&n!=i){//能够被整除并且产生的除数不等于被除数,还能再进行运算
    n/=i;
    System.out.print(i+"*");
   }
   if(n==i){//若不加此判断语句则输出为20=2x2x,需要输出最后位数
    System.out.print(n);
    break;
   }
  }
 }
}
2.案例:使用循环输出菱形
//2.案例:使用循环输出菱形
import java.util.Scanner;
public class Test2{
 public static void main(String[] args){
  System.out.println("请输入一个整数n:");
  int n = new Scanner(System.in).nextInt();
  //菱形上半部分
  for(int i =1;i<=n;i++){ //换行
   for(int w=1;w<=n-i;w++){//输出的空格数,总行数-当前的行数
    System.out.print(" ");
   }
   for(int b=1;b<=2*i-1;b++){ //输出的*等于当前行数的两倍-1
    System.out.print("*");
   }
   System.out.println();
  }
  //菱形下半部分
  for(int j =n-1;j>=1;j--){//-1去掉重复的一行
   for(int w1=n-j;w1>=1;w1--){
    System.out.print(" ");
   }
   for(int b1=2*j-1;b1>=1;b1--){ 
    System.out.print("*");
   }
   System.out.println();
  }
 }
}
3.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
/*3.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。*/
//注意12阶乘的sum超过int类型范围
import java.util.Scanner;
public class Test3{
 public static void main(String[] args){
  System.out.println("请输入一个整数表示位数:");
  int n = new Scanner(System.in).nextInt();
  System.out.println("请输入一个整数表示每一位的数是:");
  int a = new Scanner(System.in).nextInt();
  int sum =0;//求和,多个单位数的和
  int s=0;//单位数
  for(int i=1;i<=n;i++){ //第几位单位数
   for(int j=i;j<=i;j++){//输出单位数,单位数的位数
    s += Math.pow(10,(i-1)*a);//减去个位
   }
   sum+=s;
  }
   System.out.println("s="+sum);
 }
}
4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
//4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
import java.util.Scanner;
public class Test4{
 public static void main(String[] args){
  System.out.println("请输入这个数列的第N个数的位置:");
  int sc =new Scanner(System.in).nextInt();
  int a =2;//分子
  int b=1;//分母
  long c=2;
  long d =1;
  for(int i=2;i<=sc;i++){
   int temp =a;
   a = a+b;
   b =temp;
   long temp1=d*b;
   c=c*b+d*a;
   d=temp1;
   System.out.println("第"+i+"个分数为"+a+"/"+b+",和的值为:"+c+"/"+d);
  }
 }
}
5.编写一个程序,根据输入某个班级学员的成绩,计算该班级学员的平均成绩, 班级的人数要求用户输入,根据输入的人数,分别录入学员的成绩,计算该 班级学员的平均成绩,并显示计算结果
/*5.编写一个程序,根据输入某个班级学员的成绩,计算该班级学员的平均成绩,
班级的人数要求用户输入,根据输入的人数,分别录入学员的成绩,计算该
班级学员的平均成绩,并显示计算结果*/
import java.util.Scanner;
public class Test5{
 public static void main(String[] args){
  System.out.println("请输入班级的人数n:");
  int n =new Scanner(System.in).nextInt();
  double sum =0;
  for(int i=1;i<=n;i++){
   System.out.println("请输入第"+i+"个学生的成绩:");
   double man =new Scanner(System.in).nextDouble();
   sum+=man;
  }
  System.out.println("该班的平均成绩为:"+sum/n);
 }
}
6.输入两个数,求两个数的最小公倍数
//6.输入两个数,求两个数的最小公倍数
import java.util.Scanner;
public class Test6{
 public static void main(String[] args){
  Scanner input = new Scanner(System.in);
  System.out.println("请输入第一个数整数n:");
  int n =input.nextInt();
  System.out.println("请输入第二个数整数m:");
  int m =input.nextInt();
  int max = n>m?n:m;
  for(int i =max;i<n*m;i++){
   if(i%n==0&&i%m==0){//从两个数中的最大值开始判定能与分别两个数除尽的
    System.out.println("最小公倍数为:"+i);
    break;//不加break则当不满足时无执行语句,无法进行++操作
   }
  }
 }
}
7.五位数中,对称的数称为回文数,找出所有的回文数。如12321(***)
//7.五位数中,对称的数称为回文数,找出所有的回文数。如12321(***)
public class Test7{
 public static void main(String[] args){
  System.out.println("五位数中回文数:");
  for(int n=10000;n<=99999;n++){
   int a =n/10000;//万位
   int b =n/1000%10;//千位
   int c =n/10%10;//十位
   int d =n%10;//个位
   if(a == d && b == c){
    System.out.print("\t"+n);
   }
  }
 }
}
发布了2 篇原创文章 · 获赞 1 · 访问量 552

猜你喜欢

转载自blog.csdn.net/weixin_44255829/article/details/104221795