java测试题

public static void main(String[] args) {
        // 1 1 2 3 5 8 13 21 34 55 89 144...
        // 菲波那切数列
        int[] a=new int[10];
        for(int i=0;i<a.length;i++) {
            if (i==0 || i==1) {
                a[i]=1;
            }else {
                a[i]=a[i-1]+a[i-2];
            }
        }
        for (int i = 0; i < a.length; i++) {
            System.err.println(a[i]);
        }
    }
//打印出九九乘法表
    //1*1=1 
    //1*2=2 2*2=4
    public static void main(String[] args) {
        for(int i=1;i<10;i++) {
            for(int j=1;j<=i;j++) {
                System.err.print(j+"*"+i+"="+j*i+"   ");
            }
            System.err.println();
        }
    }
//冒泡排序(由小到大)
    public static void main(String[] args) {
        int[] arr=new int[] {1,33,23,17,33,45,2,4};
        for(int i=0;i<arr.length-1;i++) {
            for(int j=0;j<arr.length-i-1;j++) {
                int temp;
                if (arr[j]>arr[j+1]) {
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        for(int i=0;i<arr.length;i++) {
            System.err.println(arr[i]);
        }
    }
//打印输出
    /*     j=0 j=1 j=2        
     *i=1   1   4   7  10   
     *      2   5   8  11
     *      3   6   9  12
     *      每行的后一个数比前一个数多3
     */
    public static void main(String[] args) {
        for(int i=1;i<=3;i++) {
            for(int j=0;j<4;j++) {
                System.err.print(i+j*3+"  ");
            }
            System.err.println();
        }
    }
/*
     * 打印出如下图案
     *     j=1
     * i=0  1 1 1 1 * 1 1 1 1
     *      1 1 1 * 1 * 1 1 1
     *      1 1 * 1 1 1 * 1 1
     *      1 * 1 1 1 1 1 * 1
     *      * 1 1 1 1 1 1 1 *s
     */
    public static void main(String[] args) {
        for(int i=0;i<5;i++) {
            for(int j=1;j<10;j++) {
                if(j == 5-i || j == 5+i) {
                    System.err.print("*"+"  ");
                }else {
                    System.err.print("1"+"  ");
                }
            }
            System.err.println();
        }
    }
 //判断101——200之间有多少个素数,并输出所有的素数
    //分析:能被1或它本身整除的数称之为素数
    //用这个数去除以2到自身少1的数/或者sqrt(这个数)
    public static boolean isnum(int num) {
        for(int j=2;j<Math.sqrt(num);j++) {
            if(num % j == 0) {
                return false;//不是
            }
        }
        return true;//是
    }
    public static void main(String[] args) {
        int n = 0;
        for(int i=101;i<200;i++) {
            if (isnum(i)) {
                System.err.print(i+"是素数     ");
                n++;
                if (n % 5 == 0) {
                    System.err.println();
                }
            }
        }
    }
//打印出水仙花数(100——999之间的所有水仙花数(百位数的立方+十位数的立方+个位数的立方=本身))
   public static void main(String[] args) {
       for(int i=100;i<=999;i++) {
           int bai = i/100%10;
           int shi = i/10%10;
           int ge = i%10;
           int n = 0;
           if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i) {
               System.err.print(i+"是      ");
           }
       }
       
   }
 //分解质因数90=2*3*3*5
    public static boolean sushu(int num) {
        for(int i=2;i<Math.sqrt(num);i++) {
            if(num % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入:");
        int a=sc.nextInt();
        System.err.print(a+"=");
        while(sushu(a)==false) {
            for(int i=2;i<a;i++) {
                if(a % i == 0) {
                    System.err.print(i+"*");
                    a=a/i;
                }
            }
        }
        System.err.print(a);
    }
//利用条件运算符的嵌套来完成此题:
    //学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
    public static void main(String[] args) {
        int score=60;
        char ch=score >= 90? 'A':(score>=60?'B':'C');
        System.err.println(ch);
    }
//输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
    //(1)数字0到9: 48~57
    //(2)字母A到Z:65到90 a到z:97到122
    //(3)空格是32 
    public static void main(String[] args) {
        String str="8u893i   78uyAB";
        char[] ch=str.toCharArray();
        int shuzi = 0;
        int zimu=0;
        int kongge=0;
        for(int i=0;i<ch.length;i++) {
            if(ch[i] >= 48 && ch[i] <= 57) {
                shuzi++;
            }else if(ch[i] >= 65 && ch[i] <= 90 || ch[i] >= 97 && ch[i] <= 122) {
                zimu++;
            }else if(ch[i] == 32){
                kongge++;
            }
        }
        System.err.println("数字:"+shuzi);
        System.err.println("字母:"+zimu);
        System.err.println("空格:"+kongge);

    }
//求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=5;
        int a=2;
        int[] arr=new int[n];
        arr[0]=a;
        for(int i=1;i<n;i++) {
            a=a*10;
            arr[i]=a+arr[i-1];
        }
        int sum=0;
        for(int j=0;j<arr.length;j++) {
            sum=sum+arr[j];
            System.err.print(arr[j]+"   ");
        }
        System.err.println(sum);
    }
//一个数如果恰好等于它的因子之和,这个数就称为”完数”。
    //例如6=1+2+3.编程找出1000以内的所有完数。
    public static void main(String[] args) {
        
        for(int i=1;i<=1000;i++) {
            int sum=0;
            for(int j=1;j<=i/2;j++) {
                if(i % j ==0) {
                    sum+=j;
                }
            }
            if(i == sum) {
                System.out.println("该数为:"+i);
            }
        }
//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    //程序分析:可填在百位、十位、个位的数字都是1、2、3、4。这里要用3个for循环
    //用if判断条件是否符合,符合条件的数字打印出来,并计算个数总和
    public static void main(String[] args) {
        int sum = 0;
        for(int gewei=1;gewei<5;gewei++) {
            for(int shiwei=1;shiwei<5;shiwei++) {
                for(int baiwei=1;baiwei<5;baiwei++) {
                    if(gewei != shiwei && gewei != baiwei && shiwei != baiwei) {
                        System.out.print(gewei*100+shiwei*10+baiwei+"  ");
                        sum++;
                        if(sum % 10 == 0) {
                            System.out.println();
                        }
                    }
                }
            }
        }
    }
    题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
    利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,
    可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,
    可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,
    从键盘输入当月利润I,求应发放奖金总数?
    public static void main(String[] args) {
        double i=8;
        double money=0;
        if (i<=10) {
            money=i*0.1;
        }else if (i<=20) {
            money=10*0.1+(i-10)*0.075;
        }else if(i<=40) {
            money=10*0.1+10*0.075+(i-20)*0.05;
        }else if(i<=60) {
            money=10*0.1+10*0.075+20*0.05+(i-40)*0.03;
        }
        System.out.print(money);
    }
        #    while True:
                if profile>0 and profile<=100000:
                    bonus = profile*0.01
                    print(bonus)
                elif profile>100000 and profile<=200000:
                    bonus = 100000*0.1 + (profile-100000)*0.075
                    print(bonus)
                elif profile>200000 and profile<=400000:
                    bonus = 100000*0.1 + 100000*0.075 + (profile-200000)*0.05
                    print(bonus)
                elif profile>400000 and profile<=600000:
                    bonus = 100000*0.1 + 100000*0.075 + 200000*0.05 + (profile-400000)*0.03
                    print(bonus)
                elif profile>600000 and profile<=1000000:
                    bonus = 100000*0.1 + 100000*0.075 + 200000*0.05 + 200000*0.03 + (profile-600000)*0.015
                    print(bonus)
                elif profile>1000000:
                    bonus = 100000*0.1 + 100000*0.075 + 200000*0.05 + 200000*0.03 + 400000*0.015 + (profile-600000)*0.01
                    print(bonus)
        #        elif profile == 0:
        #            break
        
        def main():
            profile = 1
            while profile != 0:
                profile = int(input('请输入利润/元'))
                test(profile)
        
        main()
//一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    public static void main(String[] args) {
        for(int i=1;i<1000;i++) {
            int num1=(int) Math.sqrt(i+100);
            int num2=(int) Math.sqrt(i+168);
            if(num1 * num1 == i+100 && num2 * num2 == i+168) {
                System.out.println(i);
            }
        }
    }
//输入某年某月某日,判断这一天是这一年的第几天?
    public static void main(String[] args) {
        int year=2008;
        int month=1;
        int day=6;
        int[] arr= {31,28,31,30,30,30,31,31,30,31,30,31};
        for(int i=0;i<month;i++) {
            day+=arr[i];
            
        }
        System.out.println(day);
        if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0) {
            day+=1;
        }
        System.out.println(year+"年"+month+"月"+day+"日,是这一年的第"+day+"天");
    }
//输入三个整数x,y,z,请把这三个数由小到大输出。
    public static void main(String[] args) {
        int a=98;
        int b=23;
        int c=12;
        int temp;
        if(a > b) {
            temp=a;
            a=b;
            b=temp;
        }
        if (a > c) {
            temp=a;
            a=c;
            c=temp;
        }
        if(b > c) {
            temp=b;
            b=c;
            c=temp;
        }
        System.out.println(a+"<"+b+"<"+c);
    }
//使用于数字(比较大小)
    public static void main(String[] args) {
        int a=22;
        int b=23;
        a=a+b; //45
        b=a-b; //22
        a=a-b; //23
        System.out.println("a="+a+"b="+b);
    }
//猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,
    //又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
    //以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    //天 数 1 2 3 4 5 。。。10
    //桃子数 1 4 10 22 46 ?
    public static void main(String[] args) {
        int sum=1;
        for(int i=2;i<=5;i++) {
            sum=sum*2+2;
        }
        System.out.println(sum);
    }
//两个乒乓球队进行比赛,各出三人。
    //甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。
    //a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
    public static void main(String[] args) {
        String a=null,b=null,c=null;
        String[] arr= {"x","y","z"};
        for(int i=0;i<3;i++) {
            for(int j=0;j<3;j++) {
                for(int k=0;k<3;k++) {
                    if(i != j && i != k && j != k) {
                        a=arr[i];
                        b=arr[j];
                        c=arr[k];
                        if(!a.equals("x")&&!c.equals("x")&&!c.equals("z")) {
                            if(a.equals(arr[i])&&b.equals(arr[j])&&c.equals(arr[k])) {
                                   System.out.println("a的对手是:"+arr[i]+",b的对手是:"+arr[j] +",c的对手是:"+arr[k]);
                            }
                        }
                    }
                }
            }
        }
    }
   *
  ***
 *****
*******
 *****
  ***
   *

    public static void main(String[] args) {

         //打印上面部分:
             int n=4;
            for (int i = 0; i < n; i++) { //控制行
                for (int k =3-i; k > 0 ; k--) { //控制*前面空格的输出
                  System.out.print(" ");
                }
                //输出符号,但不要换行
                for (int j = 0; j <=2*i;j++) { //控制列
                   System.out.print("*");
                }
                //输出完符号马上换行
                System.out.println();
            }
            //打印下面部分
            n=3;
            for (int i = n; i > 0; i--) { //控制行
            for (int k =3-i+1; k > 0 ; k--) { //控制*前面空格的输出,第一行要加空格
             System.out.print(" ");
            }
            //输出符号,但不要换行
            for (int j = 0; j <=2*i-2;j++) { //控制列
                System.out.print("*");
            }
            //输出完符号马上换行
            System.out.println();
            }
        }
/*
         *  *
           ***
          *****
         *******
          *****
           ***
            *
    
         */
    public static void main(String[] args) {
        for(int i=0;i<4;i++) {
            //控制空格
            for(int j=1;j < 4-i;j++) {
                System.out.print(" ");
            }
            for(int k=0;k<=2*i;k++) {
                System.out.print("*");
            }
            System.out.println();
        }
        for(int i=3;i>0;i--) {
            for(int j=1;j<=4-i;j++) {
                System.out.print(" ");
            }
            for(int k=1;k<2*i;k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
 //2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
    public static void main(String[] args) {
        double up=2;
        double down=1;
        double num=up/down;
        double temp=0;
        double sum=0;
        for(int i=0;i<5;i++) {
            sum+=num;
            temp=up+down;
            down=up;
            up=temp;
            num=up/down;
            System.out.print("num="+num+"   ");
            
        }
        System.out.println(sum);
    }
 //求1+2!+3!+…+20!的和
    public static int jieCheng(int i) {
        int sum = 1;
        for(int j=1;j<=i;j++) {
            sum*=j;
        }
        return sum;
    }
    public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<=20;i++) {
            sum=sum+jieCheng(i);
        }
        System.out.println(sum);
    }
/*
     * 利用递归方法求5!。
                    程序分析:递归公式:f(n)=n*f(n-1)
     */
    public static int get(int i) {
        if(i == 1) {
            return 1;
        }
        return i*get(i-1);
    }
   public static void main(String[] args) {
     System.out.println( get(4));
      
   }
String s1 = “1,2,3,4,5,6,7,8.9,10,11,12,13,14,15”;//代表全部参与抽奖的人员编号
String s2 =”2,5,6”;//代表已经中奖的人员编号
int number = 3;
写一个函数,从s1中随机筛选出number个数字,且此数字不在s2中。返回一个字符串。
/**
 * @author yzh
 * @Description: java
 * @date 2019/3/19 16:32
 */
public class yzh {
    public static void main(String[] args) {
        String s1 ="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15";
        String s2 ="2,5,6";
        String[] a = s1.split(",");
        String[] b = s2.split(",");
        //获得随机索引
        int  number= (int)(Math.random()*10)+1;
        List<String> list = new ArrayList();
        for (int i = 0; i < a.length; i++) {
            list.add(a[i]);
            for (int j = 0; j < b.length; j++) {
                if(a[i].equals(b[j])){
                    list.remove(a[i]);
                }
            }
        }
        System.out.println("一等奖是:"+s2);
        System.out.println("二等奖在下面的人中抽:"+list.toString());
        System.out.println("二等奖人数:"+number);
        System.out.println("二等奖的人:");
        while (number>=0){
            Random r=new Random();
            int sui=r.nextInt(number);
            System.out.print(list.get(sui)+",");
            list.remove(sui);
            number--;
            if(number<=0){
                break;
            }
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值