数组内存放了一些个位数字,组成一个大数(从高位到低位),现在将这个数加 11,并输出加一以后的结果。

数组内存放了一些个位数字,组成一个大数(从高位到低位),现在将这个数加 1,并输出加一以后的结果。

例如:

A = [2,3,1,1,4]
则结果为 [2,3,1,1,5]。

A = [7,8,9]

则结果为 [7,9,0]。

输入格式

第一行输入一个正整数n(1≤n≤100),接下来的一行,输入用空格分隔的 n个 0 到 9 的非负整数组成的数组 A[n]。

输出格式

输出一行,n 个用空格分隔的整数,表示加一后的新数组。

样例输入
5
8 9 9 9 9

样例输出
9 0 0 0 0

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		String arr[] = new String[n];
		String string1 = "";

		for (int i = 0; i < arr.length; i++) {
			arr[i] = input.next();
			string1 += arr[i];
		}

		BigInteger df = new BigInteger(string1);
		BigInteger df1 = new BigInteger("1");
		df = df.add(df1);
		String string2 = "";
		string2 += df;

		for (int i = 0; i < string2.length() - 1; i++) {
			System.out.print(string2.charAt(i) + " ");
		}
		System.out.print(string2.charAt(string2.length() - 1));
	}
}

定义一个字符数组来存储大数,通常我们创建一个足够大的固定大小数组,例如100,这是因为大多数字系统(如十进制)的位不会超过99。数组的第位用于存放符号(通常是+或-),剩余的每位从左到右分别存储数字0到9。例如: ```c++ char bigNum[100] = {'+', '\0'}; ``` 这里`'\0'`代表字符串结束符,实际存储的数字从第二个元素开始。 要将输入的数字转换成字符数组,你可以使用循环遍历的方式,以下是一个简单的示例(假设用户输入的是一个字符串形式的数字): ```c++ void storeNumber(char num[], int size, char* input) { int index = 0; bool negative = false; // 检查输入是否包含负号 if (*input == '-') { negative = true; input++; // 跳过负号 } while (*input != '\0') { if (index < size - 1 && *input >= '0' && *input <= '9') { // 防止溢出 bigNum[index++] = *input - '0'; } else { break; // 输入错误,提前退出 } input++; } // 如果输入过大导致溢出,添额外的符号位 if (index == size - 1) { bigNum[size - 1] = '1'; // 或者抛出异常 } // 添符号位 if (negative) { bigNum[0] = '-'; } } ``` 之后你可以调用这个函检查数组内容来验证输入: ```c++ int main() { char input[] = "1234567890"; // 用户输入 storeNumber(bigNum, sizeof(bigNum), input); for (int i = 0; i < sizeof(bigNum); i++) { printf("%c", bigNum[i]); } return 0; } ``` 输出将是 `1234567890` 或 `-1234567890`,取决于输入。记得最后检查数组边界以确保正确的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值