从你给的图片来看,用数组就OK啊,完全没有什么大数据加减法的必要啊
那个c[100] = 204啊,是不是还有别的什么条件你没有亮出来啊
java的大数运算 可以使用BigInteger 这个方法 这个方法数据的最大值取决于你的电脑
```java
BigInteger abs() 返回大整数的绝对值
BigInteger add(BigInteger val) 返回两个大整数的和
BigInteger and(BigInteger val) 返回两个大整数的按位与的结果
BigInteger andNot(BigInteger val) 返回两个大整数与非的结果
BigInteger divide(BigInteger val) 返回两个大整数的商
double doubleValue() 返回大整数的double类型的值
float floatValue() 返回大整数的float类型的值
BigInteger gcd(BigInteger val) 返回大整数的最大公约数
int intValue() 返回大整数的整型值
long longValue() 返回大整数的long型值
BigInteger max(BigInteger val) 返回两个大整数的最大者
BigInteger min(BigInteger val) 返回两个大整数的最小者
BigInteger mod(BigInteger val) 用当前大整数对val求模
BigInteger multiply(BigInteger val) 返回两个大整数的积
BigInteger negate() 返回当前大整数的相反数
BigInteger not() 返回当前大整数的非
BigInteger or(BigInteger val) 返回两个大整数的按位或
BigInteger pow(int exponent) 返回当前大整数的exponent次方
BigInteger remainder(BigInteger val) 返回当前大整数除以val的余数
BigInteger leftShift(int n) 将当前大整数左移n位后返回
BigInteger rightShift(int n) 将当前大整数右移n位后返回
BigInteger subtract(BigInteger val)返回两个大整数相减的结果
byte[] toByteArray(BigInteger val)将大整数转换成二进制反码保存在byte数组中
String toString() 将当前大整数转换成十进制的字符串形式
BigInteger xor(BigInteger val) 返回两个大整数的异或
BigInteger.ZERO 是 BigInteger的零
蓝桥杯的一道题和这个差不多 你可以参考一下
package a12蓝桥;
import java.math.BigInteger;
/*
前言
在Java中,由CPU原生提供的整型最大范围是64位 long 型整数。使用 long 型整数
可以直接通过CPU指令进行计算,速度非常快。
但是如果我们使用的整数范围超过了 long 型怎么办?
这个时候,就只能用软件来模拟一个大整数。
java.math.BigInteger
就是用来表示任意大小的整数。
BigInteger 内部用一个 int[] 数组来模拟一个非常大的整数。
常用的两种定义方式
BigInteger a=new BigInteger("123");
//没有参数为long的构造函数,用字符串来构造
BigInteger b=BigInteger.valueOf(123);
//静态方法,返回val对应的BigInteger
BigInteger类中定义了四则运算的方法,add,subtract,multiply,divide。
对 BigInteger 做运算的时候,只能使用实例方法。
如:
a=a.add(b);
*/
public class 棋盘放麦子 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger sum = BigInteger.valueOf(1);
BigInteger add = BigInteger.valueOf(1);
BigInteger mul = BigInteger.valueOf(2);
for (int i=0;i<63;i++) {
add = add.multiply(mul);
sum = sum.add(add);
}
System.out.print(sum);
}
}
```
没有读懂你的问题。。。。
可以使用集合来完成。
import java.util.ArrayList;
import java.util.Scanner;
public class demo01 {
public static void main(String[] args) {
ArrayList<Integer>a_list=new ArrayList<>();
ArrayList<Integer>b_list=new ArrayList<>();
ArrayList<Integer>c_list=new ArrayList<>();
System.out.println("请输入数组的最大下标");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for (int i = 0; i < n; i++) {
a_list.add(i+1);
b_list.add(i+5);
c_list.add(a_list.get(i)+b_list.get(i));
}
System.out.println(a_list.get(n-1));
System.out.println(b_list.get(n-1));
System.out.println(c_list.get(n-1));
}
}