东北林业大学第12届ACM

东北林业大学第12届ACM

东北林业大学第12届ACMhttps://www.nowcoder.com/acm/contest/45#question

F题和K题对大数运算的转化

首先F题,由于测试数据为接近10的100次方的大数,则可知需要用字符串进行存储,而由于是计算各位数之和,所以经过字符串存储之后的第一次计算得到的值最大也就是900(即100个9),这时已经由一个大数转化为了一个极小的数,直接转换成了int 型,然后进行运算即可

东北林业大学第12届ACM(打表)-LMLPHP

然后K题,由于是需要进行三次方,所以直接计算的话,测试数据结果会有一部分溢出,针对这种部分正确,而另一部分错误的题目可行的方案一般就是转化,要么把错误数据的范围转化到正确数据范围内(一般是利用字符串存储或者对数据取模什么的),要么是根据正确数据直接猜错误数据,这道题使用了后者,打出一部分正确数据,然后找到规律直接输出即可

东北林业大学第12届ACM(打表)-LMLPHP

废话这么多,其实就是想说对于大数运算一般有这几种方式:1、字符串存储,利用题目要求将大数转化为小数,用int 存储起来运算(也就是F题做法)

                           2、针对部分正确,部分溢出的题目,可以通过找规律直接输出结果,当然有时还是需要方式一的转化

东北林业大学第12届ACM(打表)-LMLPHP

05-06 04:02