最近一直在忙其他的东东Java
被我遗忘在角落。。Orzzz
很久没跟Java玩了,今天来看一些例子,熟悉Java
一眼就能看出来的语法及可能涉及到的算法我不会注释,只注释我自己觉得重要的思路和点。
如果大家有什么不懂的地方欢迎在评论里提问。
//TimeG.java:显示当前的格林尼治标准时间。
//无用户输入,输出当前的格林尼治标准时间。
import javax.swing.JOptionPane;
public class TimeG
{
public static void main(String[] args)
{
long totalMilliseconds = System.currentTimeMillis();
//注意这里用的是long,因为system.currentTimeMillis()得到的是从1970.1.1到现在的总毫秒数。毫秒,不是秒
long totalSeconds = totalMilliseconds / 1000;//换算成秒
int currentSecond = (int)(totalSeconds % 60);
long totalMinutes = totalSeconds / 60;
int currentMinute = (int)(totalMinutes % 60);
long totalHours = totalMinutes / 60;
int currentHour = (int)(totalHours % 24);
String output = "Current time is " + currentHour + ":" + currentMinute + ":" + currentSecond + "GMT";
//这里单独把输出字符串列出来了,虽然多了一行但是会比较清晰
JOptionPane.showMessageDialog(null,output,"TimeG",JOptionPane.INFORMATION_MESSAGE);
//建议TimeG这种对话框的标题不要省,因为用户可以从这里知道调用这个对话框的程序
}
}
//PrimeNum.java
//打印前五十个素数,无输入
public class PrimeNum
{
public static void main(String[] args)
{
final int NUMBER_OF_PRIMES = 50;
//final修饰常量
int count = 0;
int num = 2;//1不是素数
boolean isPrime = true;//用布尔变量标记是否是素数,注意“isPrime”这种习惯表达
System.out.println("The first 50 prime numbers:");
while (count < NUMBER_OF_PRIMES)
{
isPrime = true;
int i;
for(i = 2; i <= num / 2; i++)
{
if(num % i == 0)//num可以被i除尽,不是素数
{
isPrime = false;
break;
}
}
if(isPrime)
{
count++;//计数
System.out.print(num + " ");
}
num++;
}
}
}
这是上面的一个变体,ustcoj上的(http://acm.ustc.edu.cn/ustcoj/problem.php?id=1307)
题目复制如下:
判断素数
Time Limit: 1000ms
Memory Limit: 65536kb
Description
可怜的小木偶不会判断素数,还是你来教她吧。
Input
第一行有一个数字T,表示要测试的次数,0
接下来是T组数据,每组一行。每一行包含一个待判断的整数a,其中0
Output
对于每组数据,如果是素数则输出Yes,否则输出No。
Sample Input
2
4
7
Sample Output
No
Yes
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int t = in.nextInt();//数据组数
while(t > 0) //不可以直接用while(t),java不支持把int当成true/false这种方式
{
int n = in.nextInt();
int i;
boolean isPrime = true;
for(i = 2; i <= n / 2; i++)
{
if(n % i == 0)//num可以被i除尽,不是素数
{
isPrime = false;
break;
}
}
if(isPrime)
System.out.println("Yes");
else
System.out.println("No");
t--;
}
}
}