第一次接触大数据处理的问题。基本思路是将大数据的每一位数分别放入数组A【】中;将A的每一个元素与K相乘,设置一个if 处理进位问题。
第一次将数组设为了7位,将n<1000的条件当作了位数。造成了第一个错误。
第二次尝试将数组设为两位,因为两个小于10的数相乘最大9*9=81;
未解决问题:设为两位后出现三位数高位的进位如何保存?失败。
第三次将数组放大为1000000;出现问题:1.进位;注意,从高位开始向前进位,直到个位,高位接受进位后加上自己本身如果大于10则需要继续进位。
2.输出时从高位输出,如何避免前面不需要的0:for循环将i减到第一个非零位输出。
3.11以上的计算出错:分行输出,发现有一位输出29;错误。
解决:循环次数变为1000000时忘记更改;
4.进位不正确:100以上的进位无法运算。
解决:将for 换位while 循环;
5.运行TLE:得分60;查看测试数据:312运行超时;程序需优化;
解决:将100万位调位10万位;AC!(参考了他人的数据设置)
总用时3小时16分钟.....需熟练。
最终代码如下:
总结:重点1,数组保存大数据思想。
重点2,进位算法。(每位相乘再进位相加)
重点3,continue 跳过开头的0;while控制多次进位;