有一个很大很大的数,现有的类型无法表示,求其平方 Java实现
2013-04-02 10:57
113 查看
public class DaShu {
public static void main(String[] args) {
String num = "6";//首先将这个大数放到String类型对象中
System.out.println(pow2(num));
}
public static String pow2(String num) {
char[] ch = num.toCharArray();//将一个String类型转化为一个char类型的数组
int len = ch.length;
int[] in = new int[len];//创建一个与ch数组一样大的int型数组
for (int i = 0; i < len; i++) {
//Integer.parseInt(String s):将字符串参数作为有符号的十进制整数进行解析
//String.valueOf(char c):返回 char 参数的字符串表示形式
in[i] = Integer.parseInt(String.valueOf(ch[i]));//把char类型的数据转换为int类型存放到int型数组中
}
int[] result = new int[len * 2];
for (int i = len - 1; i >= 0; i--) {
for (int j = len - 1; j >= 0; j--) {
result[i + j + 1] += in[i] * in[j];
}
}
for (int i = result.length - 1; i >= 0; i--) {
if(result[i]>9){ //当有进位时
result[i-1] += result[i]/10;
result[i] %= 10;
}
}
String results = "";
boolean firstZero = true;
for(int i =0;i<result.length;i++){
if(firstZero && result[i] == 0){
}else{
results += String.valueOf(result[i]);
firstZero = false;
}
}
return results;
}
}
public static void main(String[] args) {
String num = "6";//首先将这个大数放到String类型对象中
System.out.println(pow2(num));
}
public static String pow2(String num) {
char[] ch = num.toCharArray();//将一个String类型转化为一个char类型的数组
int len = ch.length;
int[] in = new int[len];//创建一个与ch数组一样大的int型数组
for (int i = 0; i < len; i++) {
//Integer.parseInt(String s):将字符串参数作为有符号的十进制整数进行解析
//String.valueOf(char c):返回 char 参数的字符串表示形式
in[i] = Integer.parseInt(String.valueOf(ch[i]));//把char类型的数据转换为int类型存放到int型数组中
}
int[] result = new int[len * 2];
for (int i = len - 1; i >= 0; i--) {
for (int j = len - 1; j >= 0; j--) {
result[i + j + 1] += in[i] * in[j];
}
}
for (int i = result.length - 1; i >= 0; i--) {
if(result[i]>9){ //当有进位时
result[i-1] += result[i]/10;
result[i] %= 10;
}
}
String results = "";
boolean firstZero = true;
for(int i =0;i<result.length;i++){
if(firstZero && result[i] == 0){
}else{
results += String.valueOf(result[i]);
firstZero = false;
}
}
return results;
}
}
相关文章推荐
- (旋转数组问题)给定一个整数类型的循环有序数组,求循环数组的特定值,使用二分查找法(JAVA实现)
- java实现给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- java实现定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 用C语言实现将一个int类型的数的每一个字节转换为8位2进制数的表示!!
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 把一个字符串转换成int类型(Java实现)
- JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- Java实现输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- java中表示一个文件的File类型详解
- 《剑指Offer》用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。java
- 2.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务器实现类
- java实现在Excel2003中,用A表示第一列,B表示第二列...Z表示第26列,AA表示第27列,AB表示第28列...依次列推。请写出一个函数, 输入用字母表示的列号编码,输出它是第几列
- java中一个char类型字符能表示世界上所有语言的所有字符吗?
- java 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- Java里如何实现一个方法在不同情况下“返回”不同的类型变量?
- java实现输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 创建一个Pager实现类在基于maven的ssh项目中出现无法install的解决方案(不兼容的类型: capture#1, 共 ?无法转换为long))
- java 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 一个整数二进制表示中1的个数 java实现