java大整数相加代码 java大整数类

JAVA编程中“两个大整数求和”怎么编写将大整数存入字符数组,按位相加 。给你写一段伪代码 。
String a = "12389839843958394";
String b = "23445655234343";
char ac [] = a.toCharArray();
char bc [] = b.toCharArray();
这里要将数组ac 和bc 倒序排列,因为"123"转换后为{'1','2','3'} 高位在前,倒序是为了低位在前 。这部分代码自己实现把 。
char longc[];
char shortc[];
if (ac.length=bc.length) {
longc=ac;
shortc=bc;
} else {
longc=bc;
shortc=ac;
}
下面做一个for循环 , 按位相加乘以10的i次方 。就像小学学的列竖式子一样
int sum=0;
for (int i=longc.length;ilongc.length;i) {
if (ishortc.length) {
sum =(longc[i] shortc[i]-96)*Math.pow(10, i);
} else {
sum =(longc[i]-48)*Math.pow(10, i);
}
}
其中字符相加的时候减48是将char 转换成int
利用JAVA完成两个随机100位正整数的相加操作 。这个思路大致要怎么写,代码怎么写?你给java大整数相加代码的分太少java大整数相加代码了java大整数相加代码 , 不过题目有挑战性,所以 。。。
import java.math.BigInteger;
import java.util.Random;
public class BigNumberOperation {
public static void main(String[] args) {
//以系统时间为种子
Random ran=new Random(System.currentTimeMillis());
//用以容纳两百位以上的数字
StringBuffer veryLongRandomNumber=new StringBuffer();
//不断添加乱数使其长度达到至少两百零八位
for(int i=0;i13;i){
veryLongRandomNumber.append(ran.nextDouble());
}
//打印结果 , 得到长度
System.out.println("未处理前的字符串java大整数相加代码:" veryLongRandomNumber);
System.out.println("处理前的长度为:" veryLongRandomNumber.length());
//去除字符串中的小数点和其前面的零
String temp=new String(veryLongRandomNumber).replaceAll("0\\.", "");
//再打印结果,确保处理后的长度大过二百
System.out.println("处理后的字符串:" temp);
System.out.println("处理后的长度为:" temp.length());
//取出前一百位的整数,放入firstNumber
String firstNumber=temp.substring(0,100);
System.out.println("第一个数:" firstNumber);
System.out.println("第一个数长度为:" firstNumber.length());
//取出后一百位的整数,放入secondNumber
String secondNumber=temp.substring(100,200);
System.out.println("第二个数:" secondNumber);
System.out.println("其长度也是:" secondNumber.length());
//将两个数放入大整数型,进行加操作,
BigInteger firstBigInteger=new BigInteger(firstNumber);
BigInteger secondBigInteger=new BigInteger(secondNumber);
BigInteger sum=firstBigInteger.add(secondBigInteger);
//打印结果
System.out.println("两个一百位的随机数加起来等于:" sum);
}
}
Java实现两个无限大的数的加减乘除运算根据你的要求,我写了一下代码,如下:package com.fer2005.test;public class AddUtil { /**
* @param a1 大数字1,按数组存储
* @param a2 大数字2,按数组存储
* @return 返回结果数组
*/
public int[] getResult(int[] a1,int[] a2){
//取最大的长度作为返回结果的长度,此时未考虑是否有进位
int length=a1.lengtha2.length?a1.length:a2.length;
//新建未考虑进位的数组结果
int[] tmp_res =new int[length];
int i=0;
//循环相加得到res的按照最短数组相加的结果
while(ia1.lengthia2.length){
i;
tmp_res[length-i]=a1[a1.length-i] a2[a2.length-i];
}
//操作完成后,需将长数组的值赋给res
//a1的长度说明a1比a2长度小 , res需要获取a2的前几位
if(a1.lengtha2.length){
while(length-i0){
tmp_res[length-i-1]=a2[a2.length-i-1];
i;
}
}else if(a1.lengtha2.length){
//说明a2比a1长度小,res需要获取a1的前几位
while(length-i0){
tmp_res[length-i-1]=a1[a1.length-i-1];
i;
}
}//考虑进位问题,如果某一元素大于10,则本身减10,前一元素加1,如果第一个元素大于10,特殊处理 。
//需处理相加之和大于10的情况
for(int k=tmp_res.length-1;k0;k--){
if(tmp_res[k]=10){
tmp_res[k-1]=tmp_res[k-1] 1;
tmp_res[k]=tmp_res[k]-10;
}
}
int[] res=new int[length 1];
//首位情况特殊处理
if(tmp_res[0]=10){
res[0]=1;
res[1]=tmp_res[0]-10;
for(int m=1;mtmp_res.length;m){
res[m 1]=tmp_res[m];
}else{res=tmp_res;}
}
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AddUtil addUtil = new AddUtil();
int[] a1= {9,2,3,8,5};
int[] a2={1,9,2,3,9};
for(int j:addUtil.getResult(a1, a2)){
System.out.print(j ",");
}
}}
java 两数相加 计算代码 给个答案呗如果是一般的两个数求和,用 long类型 初始化 就可以了~~~
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入两个数: ");
long n1,n2;
n1 = input.nextLong();
n2 = input.nextLong();
System.out.println("两个数的和是:");
System.out.println(n1n2);
}
}
运行结果:
请输入两个数:
213152454
238547571234
两个数的和是:
【java大整数相加代码 java大整数类】238760723688
如果两个数很大 , 超出了long表示范围,用大数BigInteger 初始化 就OK了~~~
import java.math.BigInteger;
import java.util.Scanner;
public class 大数相加 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入两个大数: ");
Scanner input = new Scanner(System.in);
BigInteger b1 = input.nextBigInteger();
BigInteger b2 = input.nextBigInteger();
System.out.println("两个大数的和是: ");
System.out.println(b1.add(b2));
}
}
运行结果:
请输入两个大数:
236547625754751312371
1237527547543547124751254
两个大数的和是:
1237764095169301876063625
望采纳~~~~~~~~~~
用 Java 写一个两个整数相加的程序代码如下:
public class Test {
public static int add(int a,int b){
return a b;
}
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数");
int a = scanner.nextInt();
System.out.println("请输入第二个数");
int b = scanner.nextInt();
System.out.println("和为:" add(a,b));
}
}
扩展资料
运算符
运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面 。
1、赋值运算符
赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数 。
例如:
1int a = 100;
2、算术运算符
运算符说明:
“ ” 加;“-”\t减;“*”\t乘 ;“/”除 ; “%”\t取余数
3、自增和自减运算符
自增和自减是单目运算符,可以放在操作元之前,也可以放在操作元之后 。操作元必须是一个整型或浮点型变量 。自增、自减运算符的作用是使变量的值增1或减1 。放在操作元前面的自增、自减运算符,会先将变量的值加1或减1,然后再使该变量参与表达式的运算 。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量的值加1或减1 。
例如:
假设a=5
1b=a;//先将a的值加1 , 然后赋值给b,此时a的值为6,b的值为6
2b=a;//先将a的值赋值给b , 再将a的值变为6 , 此时a的值为6,b的值为5
4、比较运算符
比较运算符属于二元运算符,用于程序中的变量之间 , 变量和自变量之间以及其他类型的信息之间的比较 。比较运算符的运算结果是boolean型 。当运算符对应的关系成立时,运算的结果为true,否则为false 。比较运算符共有6个,通常作为判断的依据用于条件语句中 。
运算符说明:
""比较左方是否大于右方
"" 比较左方是否小于右方
"=="比较左方是否等于右方
" = "比较左方是否大于等于右方
"= "比较左方是否小于等于右方
"!= "比较左方是否不等于右方
参考链接:Java(计算机编程语言)_百度百科
关于java大整数相加代码和java大整数类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读