java从小白开始的练习(二)

22 篇文章 7 订阅
18 篇文章 0 订阅

循环输入某同学S1结业考试的5门课成绩,并计算平均分



import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个语文成绩:");
        double chinese=sc.nextDouble();
        System.out.println("请输入一个数学成绩:");
        double math=sc.nextDouble();
        System.out.println("请输入一个英语成绩:");
        double english=sc.nextDouble();
        System.out.println("请输入一个it成绩:");
        double it=sc.nextDouble();
        System.out.println("请输入一个java成绩:");
        double java=sc.nextDouble();
        double average=(chinese+math+english+it+java)/5;
        System.out.println("平均成绩为:"+average);
    }
}


  请从控制台输入一个数,是质数(素数)还是合数
  提示:从2开始,只能被1和它本身除尽的数,是质数(素数)




import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int number=sc.nextInt();
        for(int i=2;i<number/2;i++){
            if(number%i==0 ){
                System.out.println(number + "不是质数");
            }else if(number<=3){
                System.out.println(number + "是质数");
            }else {
                System.out.println(number + "是质数");
            }
        }
    }
}


    求1~100之间不能被3整除的数之和



public class Test {
    public static void main(String[] args) {
        int sum=0;
        for(int i=2;i<100;i++){
            if(i%3==0 ){
                sum+=i;
            }
        }
        System.out.println("能被3整除的数之和为:"+sum);
    }
}

 


    请使用循环完成如下图案的打印
   *
  ***
 *****
*******
 *****
  ***
   *


public class Test {
    public static void main(String[] args) {
        for(int i=1;i<=5;i++){
            for(int j=5;j>i;j--){
                System.out.print(" ");
            }
            for(int j=0;j<i*2-1;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        for(int i=1;i<=4;i++){
            for(int j=0;j<i;j++){
                System.out.print(" ");
            }
            for(int j=4*2-1;j>=i*2-1;j--){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}


 

 
    有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

public class Test {
    public static void main(String[] args) {
        for (int i = 1000; i <= 9999; i++) {
            if ((i/100)% 10 == 3 &&  (i/10) % 10 == 6) {
                if (i%2==0 && i%3==0) {
                    System.out.print(i + " ");
                }
            }
        }

    }
}


编程求一个四位自然数ABCD,它乘以A后变成DCBA

public class Test {
    public static void main(String[] args) {
        for(int i =1000;i<9999;i++){
            int a=(i/1000)%10;
            int b=(i/100)%10;
            int c=(i/10)%10;
            int d=i%10;
            int num=d*1000+c*100+b*10+a;
            if(i*a==num){
                System.out.println("这个数是:"+i);
            }

        }

    }
}

有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来

(真分数是指分子小于分母的分数,最简真分数是指分子和分母没有共同公约数的分数)


public class Test {
    public static void main(String[] args) {
       int denominator,molecular;
      
       for(denominator=1;denominator<140;denominator++){
            for(molecular=1;molecular<denominator;molecular++){
                if(denominator*molecular==140){
                    System.out.println(molecular+"/"+denominator);
                    for(int i=1;i<70;i++){
                        double x=denominator%i;
                        double y=molecular%i;
                        for(int k=1;k<70;k++){
                            if(k != x || k!=y ) {
                            }
                        }
                    }

                }
            }
       }
    }
}

一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

public class Test {
    public static void main(String[] args) {
       for(int i=10000;i<99999;i++){
           int a=i*10+7;
           int b=7*100000+i;
           if(a*5==b){
               System.out.println("这个数是:"+i);
           }
       }
    }
}

 把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已.



public class Test {
    public static void main(String[] args) {
        int val =123456789;
        for(int i=2;i<=8;i++){
            int num=i*val;
            if(bits(num)==bits(val) ){
                System.out.println(num);
            }
        }

    }
    public  static int bits(int num) {
        if (num <= 10) {
            int c = num % 10;
            return c;
        } else {
            int c = num % 10;
            return c + bits(num / 10);
        }
    }
}

验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.



public class Test {
    public static void main(String[] args) {
        int val=0;
        int arr[]=new int[1000];
        for(int i=10;i<100000;i++){
            if((i-bits(i))%9==0){
                val+=1;
            }else {
                for(int j=0;j<1000;j++){
                    arr[j]=i;
                }
            }
        }

        if(val==(100000-10)){
            System.out.println("成立");
        }else {
            System.out.println("不成立");
        }
        System.out.println(arr);

    }
    public  static int bits(int num) {
        if (num <= 10) {
            int c = num % 10;
            return c;
        } else {
            int c = num % 10;
            return c + bits(num / 10);
        }
    }
}

如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数)



import java.util.Scanner;



public class Test {
    public static void main(String[] args) {
        int arr[] =new int[25];
        int index=0;
        for(int i=1;i<100;i++){
            if(true==isPrime(i)){
                arr[index]=i;
                index++;
            }
        }
        //冒泡思想
        for (int i=1;i<=1;i++) {
            for(int j=0;j<arr.length-i;j++){
                if(arr[j+1]-arr[j]==2){
                    System.out.println("这样的两孪生数为:"+arr[j]+"与"+arr[j+1]);
                }
            }
        }
    }
    public static boolean isPrime(int n){
        //n<=3时,质数有2和3
        if (n <= 3) {
            return n > 1;
        }
        //当n>3时,质数无法被比它小的数整除
        for(int i = 2; i < n; i++){
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

求水仙花数。        ABC  = a^3+b^3+c^3



public class Test {
    public static void main(String[] args) {
       for(int i=100;i<999;i++){
           int a=i%10;
           int b=(i/10)%10;
           int c=(i/100)%10;
           double val=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
           if(i == val){
               System.out.println(i);
           }
       }
    }
}

求  a+aa+aaa+.......+aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定。



import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入a:");
        double num=sc.nextDouble();
        System.out.println("请输入项数:");
        int item=sc.nextInt();
        System.out.println(cumulative(num,item));
    }
    public static double cumulative(double num,int item){
        if(item==1){
            return num;
        }else {
            double number=0;
            for(int i=0;i<item;i++){
                number+=num*Math.pow(10,i);
            }
            return number+cumulative(num,item-1);
        }
    }
}

 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?
 



import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入项数:");
        int item=sc.nextInt();
        item=item+1;
        double val=0;
        for (int i=1;i<=item;i++){
           val+=(cumulative(item)/cumulative(item-1));
//            System.out.println(val);
        }
        System.out.println("前"+item+"项和为:"+val);
    }
    public static double cumulative(int item){
        if(item==1){
            return 1 ;
        }else if(item==2){
            return 2;
        } else {
            return cumulative(item-2)+cumulative(item-1);
        }
    }
}

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶光不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值