正文
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(n1+ n2);
}
}
运行结果:
请输入两个数:
213152454
238547571234
两个数的和是:
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、赋值运算符
赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。
例如:
1 int a = 100;
2、算术运算符
运算符说明 :
“+” 加 ;“-”\t减 ;“*”\t乘 ; “/”除 ; “%”\t取余数
3、自增和自减运算符
自增和自减是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增、自减运算符,会先将变量的值加1或减1,然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量的值加1或减1。
例如:
假设a=5
1 b=++a;//先将a的值加1,然后赋值给b,此时a的值为6,b的值为6
2 b=a++;//先将a的值赋值给b,再将a的值变为6,此时a的值为6,b的值为5
4、比较运算符
比较运算符属于二元运算符,用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算的结果为true,否则为false。比较运算符共有6个,通常作为判断的依据用于条件语句中。
运算符说明:
""比较左方是否大于右方
"" 比较左方是否小于右方
"=="比较左方是否等于右方
" = "比较左方是否大于等于右方
"= "比较左方是否小于等于右方
"!= "比较左方是否不等于右方
参考链接:Java(计算机编程语言)_百度百科
关于java大整数相加代码和java大整数类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。