黑马程序员技术交流社区

标题: 50道java基础题——每帖2题 [打印本页]

作者: 744919632    时间: 2015-12-16 08:46
标题: 50道java基础题——每帖2题
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
  
public class  Prog13{
  
    public static void main(String[] args){
  
        int n=0;
  
        for(int i=0;i<100001;i++){
  
            if(isCompSqrt(i+100) &&  isCompSqrt(i+268)){
  
                n = i;
  
                break;
  
            }
  
        }
  
        System.out.println("所求的数是:"+n);
  
    }
  
    //判断完全平方数
  
    private static boolean isCompSqrt(int n){
  
        boolean isComp = false;
  
        for(int i=1;i<Math.sqrt(n)+1;i++){
  
            if(n==Math.pow(i,2)){
  
                isComp = true;
  
                break;
  
            }
  
        }
  
        return isComp;
  
    }
  
}
  
【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
  
import  java.util.Scanner;
  
public class  Prog14{
  
    public static void main(String[] args){
  
        Scanner scan = new Scanner(System.in).useDelimiter("\\D");//匹配非数字
  
        System.out.print("请输入当前日期(年-月-日):");
  
        int year = scan.nextInt();
  
        int month = scan.nextInt();
  
        int date = scan.nextInt();
  
        scan.close();
  
        System.out.println("今天是"+year+"年的第"+analysis(year,month,date)+"天");
  
    }
  
    //判断天数
  
    private static int analysis(int year, int  month, int date){
  
        int n = 0;
  
        int[] month_date = new int[]  {0,31,28,31,30,31,30,31,31,30,31,30};
  
        if((year%400)==0 ||  ((year%4)==0)&&((year%100)!=0))
  
           month_date[2] = 29;
  
        for(int i=0;i<month;i++)
  
           n += month_date;
  
        return n+date;
  
    }
  
}
  






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2