各位家长或者编程爱好者们,有没有听说过或者遇到过超长位数的大数字呢?例如由几百个2026(20262026............2026)组成的数字需要进行计算,这个时候应该怎么办呢?
大大数字并不是一个数学定义上的特定概念,而是编程学习中对超长位数、无法用常规数值类型直接表示的大整数的通俗称呼,核心是指因位数过多,超出普通数字存储和计算范围,需要借助字符串操作来处理的数字,是少儿编程中结合字符串与循环知识的经典应用场景。
动手实战
已知有一个超长数字,是由2026个2026组成的;同时我们把这个超长数字定义为变量N,这个时候需要计算N除以15的余数是多少?
在编程之前我们应该了解,如何在程序里面定义这个2026个2026的超长数字;这里可以使用字符串的特性,用2026个2026进行拼接;同时利用前几期的类型转换进行计算。
程序大意:
这段代码正如上面所说,运用了字符串的拼接法,将重复字符“2026”重复拼接了2026次;得到的是一个超长的字符串,它的位数远超普通整数的存储范围,因此需要用到字符串的形式先进行处理。
将变量“S”转换为整数,同时存储在变量“N”里面;这样转换的好处是,这样子就可以进行数学的计算了。
计算这个超大的整数“N”除以15的余数,虽然数字较大,但在python中依然是可以高效完成的。
运行结果:
一个数能被15整除,同时需要能被3和5整除。
能被5整除的数,末位必须是0或5。而我们定义的数字是由“2026”重复拼接而成,末位永远是6,所以它除以5余数是1。
因此,这个数除以15的余数只可能是1、6或11。
进一步计算各位数字之和,每个“2026”的各位之和是10;以此类推,2026个的总和是10*2026=20260。
20260除以3的余数是1,所以原数除以3的余数也是1。
同时满足“除以5余1”和“除以3余1”最小的整数是1,所以得出的结果1。
总结
通过字符串拼接法生成一个字符串,避免了手动输入的繁琐和错误。利用数据类型转换,将字符串转为整数,借助python对大整数进行数学运算。判断能否被 3 整除,是因为15 是 3 和 5 的乘积,必须通过这两个互质数的整除规则推导余数;这也是处理 “大大数字” 的核心技巧:不用计算完整的超大数,通过数学规律简化运算。