杭电OJ2006-2010(java版)

OJ2006

import java.util.Scanner;

public class Main2006{ 
    public static void main(String[] args) { 
      Scanner in = new Scanner(System.in);
      while (in.hasNext()) {
     int n = in.nextInt();
        int number [] = new int[n];
        int end = 1;
        int a = 0;
        for(int i =0;i<=(number.length-1);i++)
        {
         number[i] = in.nextInt();
         if (number[i]%2!=0)
         {
    end = end*number[i];
   }
        }
        System.out.println(end);
      }
}
}

注意:number.length最后还是一个数字,如果要遍历,数组是从零开始,需要对长度减一。

OJ2007

简单,无问题,代码误删

OJ2008

import java.util.Scanner;

public class Main2008 {
public static void main(String[] args) {
        Scanner in = new Scanner(System.in); 
        while(in.hasNext()) {
         int n = in.nextInt();
         if (n==0)
         {
      break;
      }
         double [] number = new double [n];
         int a=0,b=0,c=0;
         double d = 0;
         for(int i=0;i<=n-1;i++)
         {
          number[i]=in.nextDouble();
          d = number[i];
          if(d<0)
          {
               a++;
          }
          if (d==0)
          {
       b++;
       }
             if (d>0)
             {
       c++;
       }
         }
          System.out.println(a+" "+b+" "+c);
        }
  }
 }

OJ2009

import java.util.Scanner;

public class Main2009 {

 public static void main(String[] args) {
   Scanner in = new Scanner(System.in); 
       while(in.hasNext()) {
        int n = in.nextInt();
        int m = in.nextInt();
        double []number = new double[m];
        number[0] = n;
        double sum = number[0];
        for(int i = 1;i<=m-1;i++)
        {
         number[i]=Math.sqrt(number[i-1]);
         sum = sum + number[i];
        }
           System.out.println(String.format("%.2f", sum));
       }   
 }

}

OJ2010

import java.util.Scanner; 
public class Main{ 
  public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 
      while(in.hasNext()) {
       int m = in.nextInt();
       int n = in.nextInt();
       int difference = n-m;
       int[]number=new int[100];
       int end = 0;
       if (100<=m&&m<=n&&n<=999)
          {
       for(int i =m;i<=n;i++) {
        if (i==(i%10)*(i%10)*(i%10)+((i/10)%10)*((i/10)%10)*((i/10)%10)+((i/100)%10)*((i/100)%10)*((i/100)%10))
        {
     number[end] = i;
     end++;
        }
        }  
     for(int j = 0;j<=end-2;j++) {
         System.out.print(number[j]+" ");
         }
              if (end!=0) {
               System.out.println(number[end-1]);
     }
     }
                 if (end==0)
                 {
     System.out.println("no");
     }
      
          }
      }   
  }

第一次调试出现两个问题:

1.因为条理不是很清楚,所以在判断和循环的时候添加的括号出现问题,将大括号改位置后无bug。

2.无法跳到当数组内无添加数据时的if内,还查询了如何对数组内是否为空的资料o(╥﹏╥)o,实事证明有时候真的会犯傻的(对end值进行判断即可,因为每添加一个数,end值+1,如果没有添加,即end为0)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值