A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

01、判断101-200之间有多少个素数,并输出所有素数。?

public class Prog01{
        public static void main(String[] args){
                int m = 1;
                int n = 1000;
                int count = 0;
                //统计素数个数
                for(int i=m;i<n;i++){
                        if(isPrime(i)){
                                count++;
                                System.out.print(i+" ");
                                if(count%10==0){
                                        System.out.println();
                                }
                        }
                }
                System.out.println();
                System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");
        }
        //判断素数
        private static boolean isPrime(int n){
                boolean flag = true;
                if(n==1)
                  flag = false;
                else{
                        for(int i=2;i<=Math.sqrt(n);i++){
                        if((n%i)==0 || n==1){
                                flag = false;
                                break;
                        }
                         else
                           flag = true;
                  }
                }
                return flag;
        }
}
02、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

public class Prog02{
        public static void main(String[] args){
                int n = 13;
                decompose(n);
        }
        private static void decompose(int n){
                System.out.print(n+"=");
                for(int i=2;i<n+1;i++){
                        while(n%i==0 && n!=i){
                                n/=i;
                                System.out.print(i+"*");
                        }
                        if(n==i){
                                System.out.println(i);
                                break;
                        }
                }
        }
}

03、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import java.util.Scanner;
public class Prog03{
        public static void main(String[] args){
                System.out.print("请输入一串字符:");
                Scanner scan = new Scanner(System.in);
                String str = scan.nextLine();//将一行字符转化为字符串
                scan.close();
                count(str);
        }
//统计输入的字符数
        private static void count(String str){
                String E1 = "[\u4e00-\u9fa5]";//汉字
                String E2 = "[a-zA-Z]";
                String E3 = "[0-9]";
                String E4 = "\\s";//空格
                int countChinese = 0;
                int countLetter = 0;
                int countNumber = 0;
                int countSpace = 0;
                int countOther = 0;
                char[] array_Char = str.toCharArray();//将字符串转化为字符数组
                String[] array_String = new String[array_Char.length];//汉字只能作为字符串处理
                for(int i=0;i<array_Char.length;i++)
                  array_String[i] = String.valueOf(array_Char[i]);
                //遍历字符串数组中的元素
                for(String s:array_String){
                        if(s.matches(E1))
                          countChinese++;
                        else if(s.matches(E2))
                          countLetter++;
                        else if(s.matches(E3))
                          countNumber++;
                        else if(s.matches(E4))
                          countSpace++;
                        else
                          countOther++;
                }
                System.out.println("输入的汉字个数:"+countChinese);
                System.out.println("输入的字母个数:"+countLetter);
                System.out.println("输入的数字个数:"+countNumber);
                System.out.println("输入的空格个数:"+countSpace);
                System.out.println("输入的其它字符个数:"+countSpace);
        }
}
04、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

import java.util.Scanner;

public class Prog04{
        public static void main(String[] args){
                System.out.print("求s=a+aa+aaa+aaaa+...的值,请输入a的值:");
                Scanner scan = new Scanner(System.in).useDelimiter("\\s*");//以空格作为分隔符
                int a = scan.nextInt();
                int n = scan.nextInt();
                scan.close();//关闭扫描器
                System.out.println(expressed(2,5)+add(2,5));
        }
        //求和表达式
        private static String expressed(int a,int n){
                StringBuffer sb = new StringBuffer();
                StringBuffer subSB = new StringBuffer();
                for(int i=1;i<n+1;i++){
                  subSB = subSB.append(a);
                  sb = sb.append(subSB);
                  if(i<n)
                    sb = sb.append("+");
                }
                sb.append("=");
                return sb.toString();
        }
        //求和
        private static long add(int a,int n){
                long sum = 0;
                long subSUM = 0;
                for(int i=1;i<n+1;i++){
                        subSUM = subSUM*10+a;
                        sum = sum+subSUM;
                }
                return sum;
        }
}

05、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

public class Prog05{
        public static void main(String[] args){
                int count = 0;
                int n = 0;
                for(int i=1;i<5;i++){
                        for(int j=1;j<5;j++){
                                if(j==i)
                                  continue;
                                for(int k=1;k<5;k++){
                                        if(k!=i && k!=j){
                                                n = i*100+j*10+k;
                                          System.out.print(n+" ");
                                          if((++count)%5==0)
                                          System.out.println();
                                        }
                                }
                        }
                }
                System.out.println();
                System.out.println("符合条件的数共:"+count+"个");
        }
}

06、给一个不多于5位的正整数。要求:一、它是几位数,二、逆序打印出各位数字。

public class Prog06{
        public static void main(String[] args){
                int n = Integer.parseInt(args[0]);
                int i = 0;
                int[] a = new int[5];
                do{
                        a[i] = n%10;
                  n /= 10;
                  ++i;
                }while(n!=0);
                System.out.print("这是一个"+i+"位数,从个位起,各位数字依次为:");
                for(int j=0;j<i;j++)
                  System.out.print(a[j]+" ");
        }
}

07、输入三个整数x、y、z,把这三个数由小到大输出。

import java.util.Scanner;
public class Prog07{
        public static void main(String[] args){
                System.out.print("请输入3个整数:");
                Scanner sc = new Scanner(System.in);
                int x = sc.nextInt();
                int y = sc.nextInt();
                int z = sc.nextInt();
                scan.close();
                if(x>y){
                        int t = x;
                        x = y;
                        y = t;
                }
                if(x>z){
                        int t = x;
                        x = z;
                        z = t;
                }
                if(y>z){
                        int t = y;
                        y = z;
                        z = t;
                }
                System.out.println(x+" "+y+" "+z);
        }
}
08、利用递归方法求5!

public class Prog08{
        public static void main(String[] args){
                System.out.println(fact(10));
        }
        //递归求阶乘
        private static long fact(int n){
                if(n==1)
                  return 1;
                else
                  return fact(n-1)*n;
        }
}
09、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

import java.io.*;
public class Prog09{
        public static void main(String[] args){
                int n = 0;
                System.out.print("请输入一个5位数:");
                BufferedReader bufin = new BufferedReader(new InputStreamReader(System.in));
                try{
                  n = Integer.parseInt(bufin.readLine());
                }catch(IOException e){
                        e.printStackTrace();
                }finally{
                        try{
                          bufin.close();
                        }catch(IOException e){
                                e.printStackTrace();
                        }
                }
                palin(n);
        }
        private static void palin(int n){
                int m = n;
                int[] a = new int[5];
                if(n<10000 || n>99999){
                        System.out.println("输入的不是5位数!");
                        return;
                }else{
                  for(int i=0;i<5;i++){
                          a[i] = n%10;
                          n /= 10;
                  }
                  if(a[0]==a[4] && a[1]==a[3])
                    System.out.println(m+"是一个回文数");
                  else
                    System.out.println(m+"不是回文数");
            }
   }
}

10、将一个数组逆序输出。

public class Prog10{
        public static void main(String[] args){
                int[] A = new int[]{1,2,3,4,5,6,7,8,9,};
                print(A);
                System.out.println();
                int[] B = reverse(A);
                print(B);
        }
        private static int[] reverse(int[] A){
                for(int i=0;i<A.length/2;i++){
                        int temp = A[A.length-i-1];
                        A[A.length-i-1] = A[i];
                        A[i] = temp;
                }
                return A;
        }
        private static void print(int[] A){
                for(int i=0;i<A.length;i++)
                  System.out.print(A[i]+" ");
        }
}
回复 使用道具 举报
Wo丶好期待 发表于 2015-8-1 10:26
01、判断101-200之间有多少个素数,并输出所有素数。?

public class Prog01{

玩了,压缩了,再交一份!!

【黑马论坛四周年庆典】问题答案.rar

11.21 KB, 下载次数: 123

点评

哥们,你提交的时候为什么不直接提交项目,非要把代码粘出来?  发表于 2015-8-3 09:10

评分

参与人数 1技术分 +10 收起 理由
耀阳圣尊 + 10

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马