欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

打印N位数字内的所有整数

程序员文章站 2022-03-13 13:46:34
...

这个题目看似非常简单,一个简单的循环即可实现。但其实有个坑,N位数字可能超出一般的int或long类型的长度,所有必须通过数组或字符串实现自定义大数字才可以实现。

package test;

import org.junit.Test;

public class BigNumber {

	public void getBigNumberWithNByte(int n) {
		int[] num = new int[n];
		for (int i = 0; i < n; i++) {
			num[i] = 0;
		}

		boolean carry = false;
		while (!carry) {
			carry = true;
			for (int i = n-1; i >=0; i--) {
				if (carry) {
					num[i] += 1;
					carry = false;
				}
				if (num[i] >= 10) {
					num[i] -= 10;
					carry = true;
				}
			}
			printBigNumber(num);
		}
	}

	public void printBigNumber(int[] num) {
		boolean unstart = true;
		for (int i = 0; i < num.length; i++) {
			if (unstart && num[i] == 0) {
				continue;
			}
			unstart = false;
			System.out.print(num[i]);
		}
		System.out.println();
	}

	@Test
	public void test() {
		getBigNumberWithNByte(3);
	}
}

相关标签: 数据结构和算法