java经典程序编程知识(二)

static修饰的属性和方法在类初始化时加载,非静态属性和方法在对象初始化时加载。
"\n"表示换行
一个数能表示成某个数的平方的形式,则称这个数为完全平方数。完全平方数是非负数。
【程序12】
题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

注意:奖金可提10%表示奖金=利润*10%,下图上行表示区间,下行表示相应区间的奖金提成

0 10 20 40 60 100 100+
0.1 0.075 0.05 0.03 0.015 0.01

public class Programme {
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  System.out.print("请输入当月利润(万元):");
     double n=scanner.nextDouble();
     if(n<=10){
      n=n*0.1;
     }else if(n<=20){
      n=(n-10)*0.075+1;
     }else if(n<=40){
      n=(n-20)*0.05+1.75;
     }else if(n<=60){
      n=(n-40)*0.03+2.75;
     }else if(n<=100){
      n=(n-60)*0.015+3.35;
     }else{
      n=(n-100)*0.01+3.95;
     }
     System.out.println("应发奖金:"+n+"万元");
  scanner.close();
 }
}

【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
闰年的条件:year除以400能整除,或者year除以4能整除,但是不能是100的倍数

public class Programme {
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  System.out.print("请输入年月日:");
     int days[]={31,28,31,30,31,30,31,31,30,31,30,31};
     int year=scanner.nextInt();
     int month=scanner.nextInt();
     int day=scanner.nextInt();
     int sum=0;
     for(int i=0;i<month-1;i++){
      sum+=days[i];
     }
     sum+=day;
     if((year%4==0&&year%100!=0)||year%400==0){
      sum+=1;
     }
     System.out.println("该日期为一年中的第"+sum+"天");
  scanner.close();
 }
}

【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

public class Programme {
 public static void main(String[] args) {
  String x="",y="",z="";
  String[] str={"a","b","c"};
  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){
      x=str[i];
      y=str[j];
      z=str[k];
      if(!"a".equals(x)&&!"c".equals(x)&&!"c".equals(z)){
       System.out.println("x的对手是:"+x+",y的对手是:"+y+",z的对手是:"+z);;
      }
     }     
    }
   }
  }
 }
}

int max=2147483647(32位)
int min=-2147483648
当复合数据类型用(==)进行比较的时候,比较的是他们在内存中的存放地址
【程序28】
题目:对10个数进行排序

public class Programme {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入10个数:");
        int[] nums=new int[10];
        for(int i=0;i<10;i++){
            nums[i]=scanner.nextInt();
        }
        int temp;
        //冒泡排序:相邻两个元素比较
        for(int i=0;i<9;i++){
            for(int j=0;j<9-i;j++){
                if(nums[j]>nums[j+1]){
                    temp=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=temp;
                }
            }
        }
        //选择排序:一个数和其余的数比较
        for(int i=0;i<9;i++){
            for(int j=i+1;j<10;j++){
                if(nums[i]>nums[j]){
                    temp=nums[i];
                    nums[i]=nums[j];
                    nums[j]=temp;
                }
            }
        }
        System.out.println("排序后的结果:");
        for(int i:nums){
            System.out.print(i+" ");
        }
        scanner.close();
    }
}

参考:https://www.cnblogs.com/zywei/p/6638874.html





posted @ 2018-12-22 23:34  liaoxuefan  阅读(111)  评论(0编辑  收藏  举报