JAVA 周练一 (简单数学)

来源:互联网 发布:淘宝开店认证链接网址 编辑:程序博客网 时间:2024/05/29 14:41

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);        }    }}
原创粉丝点击