`
小斌张
  • 浏览: 89080 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

java 大数据次方运算

    博客分类:
  • java
阅读更多
/**引用网络文档*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Run
{

    private static int radix = 307;
   
    public static void main(String[] args) throws Exception
    {
    Run run = new Run();
    int [] result = run.Power(radix);
    logger.debug("++++ Caculate Result: +++++");
    for(int i = result.length - 1; i >= 0; i--){
    System.out.print(result[i]);
    if(i % 50 ==0){
    System.out.print(" ");
    }
    }
    }
   

public static int input() {
String inline = null;
try {
BufferedReader inStream = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please enter a power number for the radix 2: ");
inline = inStream.readLine();
int number = Integer.parseInt(inline);
return number;
} catch (NumberFormatException ex) {
System.out.println("Invalid!!");
return 0;
} catch (IOException e) {
System.out.println("Error!! ");
return 0;
}
}

int[] Power(int radix) throws Exception {
int[] result;
int n=input();
int size = (int) (n * Math.log10(radix)) + 1;
result = new int[size];
result[0] = 1;
if(n<0){
System.out.println("Sorry! Please enter a positive number!");
}
if (n == 0) {
result = new int[1];
result[0] = 1;
return result;
}
// get the result
for (int i = 0; i < n; i++) {
GetResult(result, radix);
}
return result;
}

void GetResult(int[] result, int n) {
int length = 0;
for (int i = result.length - 1; i >= 0; i--) {
if (result[i] > 0) {
length = i + 1; //get the highest bit
break;
}
}
for (int i = length - 1; i >= 0; i--) {
// calculate from the highest bit to the lowest
int temp = result[i] * n;
// get a carry
if (temp >= 10) {
// put a carry to a higher bit
result[i + 1] += temp / 10;
// check this bit weather need carry or not
CheckCarry(result, i + 1);
temp %= 10;
}
result[i] = temp;
}
}

void CheckCarry(int[] m, int index) {
if (m[index] >= 10) {
// put a carry to a higher bit
m[index + 1] += m[index] / 10;
// set the current bit
m[index] %= 10;
// check the next bit weather need carry or not
CheckCarry(m, index + 1);
}
}
}
分享到:
评论

相关推荐

    java字符串数组实现大数据运算

    在Java编程中,字符串数组和大数据运算经常被用于复杂的数据处理和计算场景。在这个特定的示例中,我们要实现一个程序来计算表达式 (1+2)(1+2^2)*(1+2^3)*...*(1+2^100) 的结果。这个表达式涉及到指数运算和乘法,这...

    实现大数据计算的加减乘

    4个基本方法实现; myPower为次方运算; myMultiply为乘法运算; myPlus为加法运算; mySubtraction为减法运算;

    17_常用API_第3天(包装类、System、Math、Arrays、大数据运算)_讲义

    总结来说,了解和熟练掌握包装类、System类、Math类、Arrays类以及大数据运算的使用是成为专业Java开发者的必要条件。通过深入学习和实践这些知识,开发者能够编写出更加高效、可靠的代码,以应对各种复杂的编程挑战...

    java练习_大数运算_BigInteger.pdf

    这个类属于 `java.math` 包,专门用于进行任意精度的整数运算,不受 Java 原生数据类型限制。在这个练习中,我们将深入探讨 `BigInteger` 类的一些核心方法,并通过一个具体的示例来展示如何使用它们。 首先,我们...

    大数据基本语法.docx

    【大数据基本语法】和...以上内容是Java基础和大数据学习中的一些关键知识点,涵盖了数据处理、集合操作、数学运算、SQL查询、字符串操作、逻辑判断以及面向对象编程等多个方面,对于面试和实际开发都非常有帮助。

    java程序员面试宝典电子书.pdf,这是一份不错的文件

    8. **高效计算2的8次方**:在Java中,可以使用位移运算`来快速计算2乘以8,即`2 ,因为左移3位相当于乘以2的3次方,即8。 9. **设计亿级计算器**:设计一个能处理百亿级别的计算器要考虑效率和精度。可以使用大数据...

    浙大java练习题答案-40001-50004.doc

    3. **40003**: 此题要求实现一个幂运算函数,即计算`x`的`n`次方。这里使用了`nextDouble()`读取双精度浮点数,然后在循环中进行指数运算。需要注意的是,Java的浮点数运算可能存在精度损失,可以使用`Math.pow()`...

    《剑指Offer》题目及Java版代码(带目录)

    10. 数值的整数次方:需要考虑大数运算以及如何优化算法性能。 11. 打印1到最大的n位数:需要处理大数的存储和输出问题,以及避免整数溢出。 12. O(1)时间删除链表节点:这是一个对链表操作的深入理解,需要巧妙地...

    FFT算法(java描述).pdf

    之后,数组的长度会被扩充到大于等于输入数组长度的最小2的幂次方的长度。 ```java public FFT(int[] x) throws Exception { // ...(代码省略) for(int i = 0; i ; i++) xConv[i] = x[i]; for(int i = n; i ;...

    大整数相加,计算两个非负整数的和,可以精确计算2的100次方

    例如,可以用一个数组存储2的100次方,该值有30个十进制位,远远超过了普通整型所能表示的范围。 2. **进位机制**:在加法运算中,当某一位的和超过其位宽时,需要向上一位进位。对于大整数,这意味着需要遍历整个...

    JavaSE编程笔记

    从给定的文件信息中,我们可以提炼出一系列与JavaSE编程相关的知识点,这些知识点涵盖了变量的概念、进制转换、数据类型及其转换、以及Java中的基本运算。以下是对这些知识点的详细解析: ### Java变量 变量在Java...

    Java将科学计数法数据转为字符串的实例

    `BigDecimal`是Java中用于进行高精度和任意精度的十进制运算的类,它可以避免浮点数计算时可能出现的精度问题。在示例代码中: ```java BigDecimal bd = new BigDecimal("3.40256010353E11"); System.out.println...

    2+22+222+2222精确计算

    对于这个特定的序列,我们可以通过初始化一个大数变量,然后不断地将2乘以10的n次方(n为当前项的位数)并累加到结果中,直至达到预设的精度或到达某个终止条件。 文件名"2+22+222+222....2精确计算.txt"暗示着可能...

    java面试宝典 吐血推荐,很全面

    - **注意事项**: `BigInteger`类提供了对任意精度整数的支持,非常适合处理大数据。 **10. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?** - **知识点**: 当使用`final`修饰一个对象引用...

    计算

    对于大数据计算,Java集合框架(如ArrayList、LinkedList、HashSet、HashMap等)和流API(Stream API)提供了强大的数据处理能力。Java 8引入的流API使得数据处理更加简洁,可以方便地进行过滤、映射、归约等操作。 ...

    java面试题及答案-非常全面(包括基础、网络、数据结构、算法及IT大厂面经)

    - **特点**:非关系型数据库,适合大数据和实时应用。 - **类型**:包括键值存储、文档数据库、图形数据库等。 ### 一致性Hash - **原理**:通过哈希函数将节点映射到环上,提高分布式的性能和可用性。 - **应用...

    Disruptor并发框架

    生产者和消费者通过索引在缓冲区中进行数据交换,而无需同步,这是因为缓冲区的大小是2的幂次方,可以使用位运算快速计算索引,减少冲突。 三、Sequence与Barrier 在Disruptor中,每个生产者和消费者都有一个唯一...

    10000的阶层

    数据结构的选择直接影响到算法的效率,例如,如果我们讨论的是数字的阶层,可能会涉及指数计算,这在处理大数据时特别重要。例如,10000的阶层可能是10的10000次方,这是一个极其庞大的数字,对于计算和存储都是巨大...

    Hive函数大全.pdf

    Hive提供了许多数学函数,如`ABS()`(绝对值)、`SQRT()`(平方根)、`POW(a, b)`(a的b次方)、`RAND()`(随机数)、`ROUND(a, d)`(四舍五入到d位小数)等。 三、类型转换函数 Hive允许将一种数据类型转换为另一...

    Python面试题及答案共80道.docx

    - **(幂运算):计算幂次,例如a**b表示a的b次方。 单引号('')和双引号("")在Python中等价,都用于表示字符串。 列表操作方法的区别: - append:在列表末尾添加一个元素。 - insert:在指定位置插入一个元素。 -...

Global site tag (gtag.js) - Google Analytics