当年做的第一道题(严格来说1000算第一道),当时还是个小屁孩,连C应该加什么头文件也记不清。这道题整整做了一个下午才A了
来说算法方面,对于这种高精度题,JAVA有绝对优势,毕竟有BigInteger类,对于C来说,我们只能模拟手算,写一个高精度乘法,用数组代替每一位,从后向前延伸。
下面是当年写的代码,现在看看实在是太丑了,简直无法直视,变量命名一塌糊涂,也算是一个学习的过程吧。
#include<iostream> using namespace std; int yici(int store[],int lenth,int n) { int i=0,j=0,jieguo=0,jinwei1=0,jinwei2=0,zanshizong=lenth,k=0,zanshi=lenth; int b[1000]={0},c[9]={0}; for(i=0;i<9;i++) { c[i]=store[999-i]; } for(k=1;k<n;k++) { for(i=0;i<5;i++) { for(j=0;j<zanshi;j++) { jieguo=store[999-j]*c[i]+jinwei2; jinwei2=jieguo/10; jieguo=ji