7. POJ高精度题目汇总:
POJ 1131 1205 1220 1405 1503 1604 1894 2084 2305 2325 2389 2413 3101 3199
/*czyuan原创文章,转载请注明出处 */
1.输入 输出的使用,直接看代码
package endual;
import java.math.*;
import java.util.*;
public class ComputApp
{
public static void main(String[] args)
{
//输入方法的使用
Scanner cin = new Scanner (System.in);
int a;
double b;
String st;
a = cin.nextInt(); //输入一行,按Anter键换行,赋值给a
b = cin.nextDouble(); //输入一行,按Anter键换行,赋值给b
st = cin.next() ; ////输入一行,按Anter键换行,赋值给st
//到此结束,下面就可以用到输入的数据了
//Scanner 相当于输入的类,定义了好多的类。我们在控制台输入的字,通过特定的方法比如:
//int ---->>nextInt() ;
//String --->>next() ;
//等等等对应的方法转换成我们要的数据类型。
//输出方法的使用
//输出方法的使用就用System.out.println() 换行的
//System.out.print() 不换行的
System.out.println(a);
System.out.println(b);
System.out.println(st);
}
}
2.输出的特别说明
2. 输出
函数:System.out.print(); System.out.println(); System.out.printf();
System.out.print(); // cout << …;
System.out.println(); // cout << … << endl;
System.out.printf(); // 与C中的printf用法类似.
例程:
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner (new BufferedInputStream(System.in));
int a; double b;
a = 12345; b = 1.234567;
System.out.println(a + " " + b);
System.out.printf("%d %10.5f\n", a, b); // 输入b为字宽为10,右对齐,保留小数点后5位,四舍五入.
}
}
规格化的输出:
函数:
// 这里0指一位数字,#指除0以外的数字(如果是0,则不显示),四舍五入.
DecimalFormat fd = new DecimalFormat("#.00#");
DecimalFormat gd = new DecimalFormat("0.000");
System.out.println("x =" + fd.format(x));
System.out.println("x =" + gd.format(x));
3. 字符串处理
java中字符串String是不可以修改的,要修改只能转换为字符数组.
例程:
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;
public class Main
{
public static void main(String[] args)
{
int i;
Scanner cin = new Scanner (new BufferedInputStream(System.in));
String st = "abcdefg";
System.out.println(st.charAt(0)); // st.charAt(i)就相当于st[i].
char [] ch;
ch = st.toCharArray(); // 字符串转换为字符数组.
for (i = 0; i < ch.length; i++) ch[i] += 1;
System.out.println(ch); // 输入为“bcdefgh”.
if (st.startsWith("a")) // 如果字符串以'0'开头.
{
st = st.substring(1); // 则从第1位开始copy(开头为第0位).
}
}
}
4. 高精度
BigInteger和BigDecimal可以说是acmer选择java的首要原因。
函数:add, subtract, divide, mod, compareTo等,其中加减乘除模都要求是BigInteger(BigDecimal)和BigInteger(BigDecimal)之间的运算,所以需要把int(double)类型转换为BigInteger(BigDecimal),用函数BigInteger.valueOf().
例程:
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner (new BufferedInputStream(System.in));
int a = 123, b = 456, c = 7890;
BigInteger x, y, z, ans;
x = BigInteger.valueOf(a); y = BigInteger.valueOf(b); z = BigInteger.valueOf(c);
ans = x.add(y); System.out.println(ans);
ans = z.divide(y); System.out.println(ans);
ans = x.mod(z); System.out.println(ans);
if (ans.compareTo(x) == 0) System.out.println("1");
}
}
5. 进制转换
java很强大的一个功能。
函数:
String st = Integer.toString(num, base); // 把num当做10进制的数转成base进制的st(base <= 35).
int num = Integer.parseInt(st, base); // 把st当做base进制,转成10进制的int(parseInt有两个参数,第一个为要转的字符串,第二个为说明是什么进制).
BigInter m = new BigInteger(st, base); // st是字符串,base是st的进制.
6. 排序
函数:Arrays.sort();至于怎么排序结构体,像C++里写个cmp的方法,在java还不太清楚,希望有人指点下~~
例程:
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner (new BufferedInputStream(System.in));
int n = cin.nextInt();
int a[] = new int [n];
for (int i = 0; i < n; i++) a[i] = cin.nextInt();
Arrays.sort(a);
for (int i = 0; i < n; i++) System.out.print(a[i] + " ");
}
}
分享到:
相关推荐
本文将详细介绍使用Java进行ACM编程的基础知识和技术要点。 #### 二、Java基础语法速成 ##### 1. 输入处理 在Java中,最常用的输入处理类是`Scanner`。`Scanner`可以从标准输入流(如键盘)读取数据,并根据不同的...
ACM 中使用 Java (完整版) 本资源是一份完整的 ACM 中使用 Java 的教程和参考文献,涵盖了 Java 语言的基础知识、输入输出重定向、数据结构和算法等方面的内容。 Java 基础知识 在 Java 中,输出重定向是通过使用...
在ACM竞赛中,使用Java语言进行编程时,常常需要对程序的输入输出进行重定向。这样做的主要目的是为了方便地读取来自文件的数据以及将程序的输出写入到指定的文件中,从而便于测试和调试程序。下面将详细介绍Java中...
Java作为一种广泛使用的编程语言,在ACM-ICPC竞赛领域同样占据着重要的位置。以下将详细介绍Java在ACM-ICPC竞赛中的优势及其特点。 1. **参与JavaChallenge的机会**:学会Java不仅可以让你参加常规的ACM-ICPC比赛,...
本文将详细介绍如何使用Java的大数类来解决ACM中的大数题目。 首先,`BigInteger`是Java `java.math`包下的一个类,它支持任意大小的整数运算,包括加、减、乘、除、模运算以及比较操作。在处理大数时,我们可以...
ACM JAVA 入门主要是为了帮助读者快速学会使用 Java 语言在 ACM 领域中解决问题,而不是学习 Java 语言本身。因此,本文将着重介绍 Java 语言在 ACM 中的应用和实现细节。 描述解析 本文旨在提供一个详细的 Java ...
这是acm封装的java包,也是斯坦福大学开放课程java编程所用的代码包
掌握`java.math.BigInteger`类的使用对于参加ACM ICPC这样的编程竞赛至关重要。它不仅能够处理非常大的数字,还提供了一套丰富的API来执行各种数学运算,从而帮助参赛者更高效地解决问题。通过熟练运用这些功能,...
本文主要讨论了在ACM竞赛中使用Java编程的一些心得和技巧。 首先,Java作为一种面向对象的编程语言,因其简洁的语法和丰富的库支持,成为了很多参赛者的首选。在处理大数运算时,Java提供了BigInteger和BigDecimal...
在Java编程领域,ACM(Association for Computing Machinery)常常与算法竞赛相关,因为ACM国际大学生程序设计竞赛(ICPC)广泛使用Java作为比赛语言之一。"acm.jar" 文件通常包含了一些为这类竞赛设计的预封装的...
Java开发的acm包 包括acm.graphics、acm.io、acm.gui、acm.program、acm.util
【Java ACM基础入门详解】 ACM(International Collegiate Programming Contest,国际大学生程序设计竞赛)是一项全球性的编程竞赛,旨在培养大学生的创新思维、团队合作和问题解决能力。在这个领域,Java语言由于...
本文介绍了在ACM竞赛中使用Java的基础知识,包括输入输出的基本处理方法以及大数/高精度计算的实现。对于已经熟悉C/C++的选手而言,掌握这些知识将有助于他们在竞赛中更加高效地解决问题。接下来的文章中还将继续...
在这个领域,Java作为一种面向对象的编程语言,因其高效、稳定和丰富的类库而被广泛使用。 描述 "33道 ACM算法题目 用java实现 ACM都已经通过" 暗示了这些算法已经被成功地用Java编程语言实现了,并且在实际的ACM...
Java中的输入通常使用`Scanner`类,特别是在ACM编程中。`BufferedInputStream`用于提高输入效率。下面是一个基本的输入示例: ```java import java.io.*; import java.util.*; public class Main { public ...
网易斯坦福大学java教程使用的包,无差错运行
"acm_acm_hwang_.p" 强调了 ACM 和 Hwang 教授的相关性,"acm_java" 表明 Java 在 ACM 编程中的重要性,"pku_1689_rubbery_ppt" 指向了北京大学的一个特定问题和其解决方案的 PPT。 【压缩包子文件的文件名称列表】...
这里的标题提到的“3道acm题的解”是关于Java语言的开源解决方案,这意味着我们可以从这些题目中学习到Java在解决算法问题上的应用。下面,我们将详细探讨这四个文件所代表的题目及其可能的解题策略。 首先,我们来...