Java编程训练题2

训练题

素数的判断条件为除开1和本身没有其他的因子。

class D05_3{
    public static void main(String[] args){
        int count =0;
        for(int num=2;num<=1000;num++){//num表示2到1000之间的所有整数
            boolean flag=true;//定义一个布尔类型
            for(int m=2;m<=num-1;m++){//判断是否为素数,
                if(num%m==0){
                    flag=false;
                    break;
                }
            } 
            if(flag){//素数输出
                count++;
                System.out.print(num+" ");
                if(count%8==0){//每八个数换一行
                    System.out.println();
                }
            }
        }
    }
}

import java.util.Scanner;

class D05_4{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);//提示输入一个数字
        System.out.print("请输入一个数字:");
        int imax=scanner.nextInt();
        double sum=0;
        double flag=1;
        for(int i=1;i<=imax;i++){
            sum+=flag/(2*i-1);//计算sum
            flag=-flag;
        }
        double pi =sum*4;//计算pi
        System.out.print(pi);
    }
}

完全数就是本身等于各个位上的数字之和

class D05_5{
    public static void main(String[]args){
        int sum=0;
        for( int n=2;n<=10000;n++){//定义n为2到10000之间所有整数
            for(int i =1;i<=n/2;i++){//计算各个位上的数字之和
                if(n%i==0){
                    sum+=i;
                }
            }  
            if(n==sum){//比较各个位上的数字之和是否等于本身,是救输出这个数字
                int temp=n;
                System.out.println("完全数有"+temp);
            }
            sum =0;
        }
    }
}

本题先计算另起一个函数计算数字各个位置的数字之和,再在主函数中调用

import java.util.Scanner;

class D05_6{
    public static void main(String[]args){
        Scanner scanner =new Scanner(System.in);//提示输入一个数字
        System.out.print("请输入一个数字:");
        int num = scanner.nextInt();
        int sum = 9+sumDigits(num);//调用函数sumDigits
        System.out.print(sum);
    }
    public static int sumDigits(int num) {
        int a=0;
        while(true){//利用循环计算各个位上的数之和
            a+=num%10;
            num=num/10;
            if(num==0){
                break;
            }
        }
        return a;//返回 a
    }
}

本题另起一个函数,直接调用。

import java.util.Scanner;

class D05_8{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);//提示用户输入
        System.out.print("请输入一个数字:");
        int n =scanner.nextInt();
        displaypattern(n);//调用函数displaypattern
    }
    public static void displaypattern(int n) {
        for(int i=1;i<=n+1;i++){
            for(int k=1;k<=n-i+1;k++){
                System.out.print(" ");//打印空格,空格数随行数增加而减小
            }
            for(int j=1-i;j<0;j++){
                System.out.print(Math.abs(j)); //打印数字J  
            }
            System.out.println();
        }
    }
}
发布了12 篇原创文章 · 获赞 1 · 访问量 240

猜你喜欢

转载自blog.csdn.net/Yi_nian_yu_dian/article/details/104264511