题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
程序分析:利用辗除法

import java.util.Scanner;

public class t {
    public static void main(String[] args) {
        int a,b,c;
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入两个数");
        a=sc.nextInt();
        b=sc.nextInt();
        c=a*b;
        int temp=1;
        if(b>a){
            temp=a;
            a=b;
            b=temp;
        }
        while(temp!=0){
            temp=a%b;
            a=b;
            b=temp;
        }
        int d=a;//最大公约数
        int e=c/d;//最小公倍数
        System.out.println("最大公约数是"+d);
        System.out.println("最小公倍数是"+e);
    }
}

题目:输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
用asc码:数字48-58,字母:65-90或97-122,空格32

import java.util.Scanner;

public class t {
    public static void main(String[] args) {
        int shu=0,zhimu=0,kongge=0,qita=0;
        System.out.println("请输入一串字符");
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        char []arr=str.toCharArray();
        for(int i=0;i<str.length();i++){
            if (arr[i]>=48&&arr[i]<=58)
                shu++;
            else if((arr[i]>=65&&arr[i]<=90)||(arr[i]>=97&&arr[i]<=122))
                zhimu++;
            else if(arr[i]==32)
                    kongge++;
            else
                qita++;

        }
        System.out.println("数字:"+shu+"字母"+zhimu+"空格"+kongge+"其他"+qita);
    }
}

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。输出结果的形式如:2+22+222=246;

public static void main(String[] args) {

   int n=0,a=0;

   Scanner scanner=new Scanner(System.in);

   System.out.println("请输入a的值:");

   a=scanner.nextInt();

   System.out.println("请输入n的值:");

   n=scanner.nextInt();

   int[] arr=new int[n];//创建数组长度为输入的项数

   int i=1;//while循环初始化的值

   arr[0]=a;//数组的第一个值为3

   //把每一项的值赋值给数组里面的数

   while (i<n) {

       a*=10;

       arr[i]=a+arr[i-1];

       i++;         

   }

   //求和

   int sum=0;

   for(ints:arr){

       sum+=s;//累加求和

       if (s==arr[n-1]) {

          System.out.print(s);

          break;//最后一次只输出结果

       }

       System.out.print(s+"+");//前面的值输出结果,后面还要加一个加号

   }

   System.out.println("="+sum);//完美结束

}

题目:一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。
class f{

public static void main(String[] args) {

   System.out.println("1000以内的因数有:");

   for (inti = 1; i <=1000;i++) {

       intsum=0;//所有因数的总和

       for (intj = 1; j < i/2+1; j++) {//j小于i/2加1

          if (i%j==0) {//判断范围内的所有j相加,就是因数总和

              sum=sum+j;

              if (i==sum) {

                 System.out.print(i+"  ");

              }

          }



       }

   }

}

题目:一球从h米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?
程序分析:反弹的高度:(1/2)的n次方*h

public class Programme10 {
public static void main(String[] args) {

   System.out.println("请输入小球下落的高度和落地的次数:");

   Scanner scanner=new Scanner(System.in);

   float h=scanner.nextFloat();

   float n=scanner.nextFloat();

   //float h=100,n=3;      

   float sum=h;//经过的路径总和

   h/=2;//第一次下落是在最高点,sum中不会有两倍的h,所以写在外面,循环从第二次开始

   for (inti = 2; i <=n; i++) {

       //经过的距离的总和

       sum+=h*2;

       //第N次反弹的高度为

       h /=2;       

   }

   System.out.println("在"+100+"米,经过"+n+"次后,能反弹:"+h+"米,经过的距离:"+sum);

   scanner.close();

}
Last modification:April 12th, 2021 at 07:59 pm
如果觉得我的文章对你有用,请随意赞赏