杭电Oj2011-2014(java版)

OJ2011 

import java.util.Scanner; 
public class Main2011{ 
  public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 
      while(in.hasNext()) {
       int n = in.nextInt();
       int number = 0;
       double figure[] = new double[n];
    for(int j = 0;j<=n-1;j++)
    {
        figure[j]= in.nextDouble();
    }
     double sum = 0;
    for(int j = 0;j<=n-1;j++) {
   for(int i = 1;i<=figure[j];i++) {
     sum = sum+ 1/(i*Math.pow(-1, i-1));
     if (i==figure[j])
     {
     System.out.println(String.format("%.2f", sum));
           sum = 0;
     }
    }
    }
      }
   }   
}

新知识点:Math.pow(num,3)    //对num求3次方

OJ2012

import java.util.Scanner; 
public class Main2012{ 
  public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 
      while(in.hasNext()) {
         int x = in.nextInt();
         int y = in.nextInt();
         int end = 0;
         int difference = y-x;
         if (x>=-39&&y>=x&&y<=50)
        {
     if (x==0&&y==0)
     {
     break;
     }
     lable:for(int i = x;i<=y;i++) {
        end = i*i+i+41;
        for(int j =2;j<end;j++) {
         if (end%j==0) {
     System.out.println("Sorry");
        break lable;
         }
        }
           if (i==y)
           {
    System.out.println("OK");
     }
       }
        }
      }
   }   
}

OJ2013

import java.util.Scanner; 
public class Main2013{ 
  public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 
      while(in.hasNext()) {
         int n = in.nextInt();
         int sum = 1;
         if (n>1&&n<30)
         {
      for(int i = 1;i<=n-1;i++) {
        sum = (sum +1)* 2 ;
      }
      System.out.println(sum);
         }
      }
   }   
}

这个蟠桃的问题真的是,很早就想到从最后一天往前推,但却在现乘以二还是先加一的问题上挣扎了很久(一直没想到要先加一再乘以二),做题思维要清晰。

OJ2014

import java.util.Scanner; 
public class Main2014{ 
  public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 
      while(in.hasNext()) {
         int n = in.nextInt();
         double sum = 0;
         double min = 101;
         double max = -1;
         double avrg = 0;
         double number[] = new double[n];
         for (int i = 0; i <= n-1; i++)
         {
      number[i] = in.nextDouble(); 
          if (number[i]>max)
          {
       max = number[i]; 
    }
             if (number[i]<min)
             {
       min = number[i]; 
    }
         }
         for(int j = 0;j<=n-1;j++) {
          sum = sum+number[j];
         }
         avrg = (sum - max - min)/(n-2);
         System.out.println(String.format("%.2f", avrg));
      }
   }   
}

第一次输出老是数字很大,因为本来是并列的循环写成了嵌套循环

第二次输出输出零,因为第一个for循环少加了一个等号



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值