JAVA 周練一 (簡單數學)

HDU 2000 字符排序

需要注意的是JAVA的格式和部分函數
如 str.toCharArray() 函數,將字符串轉化爲字符數組。
input.next(),將輸入已字符串形式讀入,類似的還有 nextInt();

import java.util.*;
public class Main{
    public static void main( String[] args ){
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            String str = input.next();
            char arr[] = new char[str.length()];
            arr = sort(str);
            for( int i=0; i<arr.length; i++ ){
                System.out.print(arr[i]);
                if( i<arr.length-1 ){
                    System.out.print(" ");
                }
            }
            System.out.println();
    }
}       
    public static char[] sort( String str ){
        char ch[] = str.toCharArray();
        Arrays.sort(ch);
        return ch;
    }
}

HDU 2001 兩點距離計算

利用this實例化了對象,再通過對象來調用函數,面向對象的思想可以讓程序變得簡潔

import java.util.*;

public class Main{

    private double x;
    private double y;

    public Main(double x,double y){
        this.x = x;
        this.y = y;
    }

    public double dis( Main p ){
        return Math.sqrt((this.x-p.x)*(this.x-p.x)+(this.y-p.y)*(this.y-p.y));
    }

    public static void main( String[] args){
        Scanner input = new Scanner(System.in);
        while( input.hasNext() ){
            double x1 = input.nextDouble();
            double y1 = input.nextDouble();
            Main p1 = new Main(x1,y1);
            double x2 = input.nextDouble();
            double y2 = input.nextDouble();
            Main p2 = new Main(x2,y2);
            double diss = p1.dis(p2);
            System.out.printf("%.2f",diss);
            System.out.println();
        }

    }
}

HDU 2005 第幾天

注意JAVA和C++數組初始化的區別,以及新學習的函數split,可以將字符串按照標誌轉化成字符串數組,再將字符串數組通過parseInt函數來轉化成Int型。

parseInt(string, radix)
radix代表基數,可選,默認爲十進制

import java.util.*; 

public class Main{

    private int year;
    private int month;
    private int day;

    public Main(int year,int month,int day){
        this.day = day;
        this.month = month;
        this.year = year;
    }

    public int contDay( Main p ){
        int c[] = {31,28,31,30,31,30,31,31,30,31,30,31};
        int ans = 0;
        for(int i = 0; i<p.month-1; i++ ){
            ans += c[i];
        }
        ans += p.day;
        int flag = 0;
        if( (p.year%4 == 0)&&(p.year%100!= 0) ){
             flag = 1;
        }
        if( p.year%400 == 0 ){
            flag = 1;
        }
        if( p.month > 2){
            ans += flag;
        }
        return ans;
    }

    public static void main( String[] args ){
        Scanner input = new Scanner(System.in);
        while( input.hasNext() ){
            String aStr = input.next();
            String[] bStr = aStr.split("/");
             int year = Integer.parseInt(bStr[0]);
             int month = Integer.parseInt(bStr[1]);
             int day = Integer.parseInt(bStr[2]);
             Main p = new Main(year,month,day);
             int ans = p.contDay(p);
             System.out.println(ans);
        }
    }
}

Codeforce #851A
簡單題

import java.util.*;

public class Main{

    public static void main( String[] args){
        Scanner input = new Scanner(System.in);
        while( input.hasNext() ){
            int n = input.nextInt();
            int k = input.nextInt();
            int t = input.nextInt();
            int ans = 0;
            if( t <= k ){
                ans = t;
            }else if( t > k && t <= n ){
                ans = k;
            }else{
                ans = k-(t-n);  
            }
            System.out.println(ans);
        }
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章