POJ 1001 Exponentiation
import java.math.BigDecimal;
import java.util.Scanner;
public class Poj1001 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
BigDecimal bigDecimal = new BigDecimal(sc.next());
int powValue = sc.nextInt();
BigDecimal result = bigDecimal.pow(powValue);
//stripTrailingZeros():如果小数点后面都是0的话,则把小数点和后面的0都去掉;
//toPlainString()是什么样子的小数就显示什么样子,toString()将小数用科学计数法表示。
String str = result.stripTrailingZeros().toPlainString();
//如果是小数,并且个位是0,则将0去掉
if(str.startsWith("0")){
str = str.substring(1);
}
System.out.println(str);
}
}
}
POJ 1002 487-3279
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Poj1002 {
static char[] map = "22233344455566677778889999".toCharArray();
static char[] str = new char[80];
static char[][] telNumbers = new char[100000][8];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String s = sc.next();
str = s.toCharArray();
initTel(i);
}
ArrayList<String> list = new ArrayList<String>();
//将二维char数组转换为ArrayList<String>
for(int i=0; i<n; i++){
list.add(String.valueOf(telNumbers[i]));
}
//对数据进行排序
Collections.sort(list, new MyComparator());
//搜索重复的电话号码,并进行输出
boolean noDuplicate = true;
int i = 0, j;
while(i<n){
j = i;
i++;
while(i<n && list.get(i).equals(list.get(j))){
i++;
}
if(i-j > 1){
System.out.println(list.get(j) + " " + (i-j));
noDuplicate = false;
}
}
if(noDuplicate){
System.out.println("No duplicates.");
}
}
/**
* 将第n行的电话号码转换成标准形式(全数字形式带连接符)
*/
static void initTel(int n) {
int j = -1, k = -1;
while (k < 8) {
j++;
//如果是连接符‘-’,跳过
try {
if (str[j] == '-') {
continue;
}
} catch (ArrayIndexOutOfBoundsException e) {
break;
}
k++;
//在第三到第四个位置之间插入一个连接符‘-’
if (k == 3) {
telNumbers[n][k] = '-';
k++;
}
//如果是字母,则将其转换为数字
if (str[j] >= 'A' && str[j] <= 'Z') {
telNumbers[n][k] = map[str[j]-'A'];
continue;
}
//如果是数字,直接存起来
telNumbers[n][k] = str[j];
}
}
/**
* 设置比较规则
*/
private static class MyComparator implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
}
}
POJ 1003 HangOver
import java.util.Scanner;
public class Poj1003 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
float f;
while(sc.hasNext()){
f = sc.nextFloat();
if(f==0){
break;
}
System.out.println(getNumber(f) + " card(s)");
}
}
//利用循环找出需要多少块卡片才能伸出value的长度
private static int getNumber(float value){
float temp = 0F;
int n = 2;
while(temp < value){
temp += 1.0/n;
n++;
}
return n-2;
}
}
POJ 1004 Financial Management
import java.text.DecimalFormat;
import java.util.Scanner;
public class Poj1004 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double sum = 0.0;
for(int i=0; i<12; i++){
double d = sc.nextDouble();
sum += d;
}
double result = sum/12.0;
//对结果小数进行格式化
DecimalFormat df = new DecimalFormat(".00");
String str = df.format(result);
System.out.println("$" + str);
}
}
POJ 1005 I Think I Need a Houseboat
import java.util.Scanner;
public class Poj1005 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
double x = sc.nextDouble();
double y = sc.nextDouble();
System.out.println("Property " + (i + 1)
+ ": This property will begin eroding in year "
+ getYear(x, y) + ".");
}
System.out.println("END OF OUTPUT.");
}
static int getYear(double x, double y) {
int year = 0;
double area = 0.0;
while (area < (Math.PI * (x * x + y * y)) / 2) {
year++;
area = year * 50.0;
}
return year;
}
}