你敲三小时代码,能得到优雅的高精度板子
你等三年,却换不来低精度的爱情
下面是高精度计算板子,除了高精除不太优雅,都很优雅
#include//高精度步骤 1.输入(字符串) 2.字符串转整型数组 3.模拟计算 4.输出(前导0注意) #include //常见问题 1.转换时忘-'0' 奇怪数字 2.计算时用= 而不是+= 无进位 3.删前导0把最后一个删了 一个测试点过不了 #include #include #include #include using namespace std; int shu1[10001],shu2[10001],ans[100001],tmp[10001]; string s1,s2; void zizhuan(string s,int a[])2(1).字符串转整型数组 { for(int i=0;i<=s.length()-1;i++) { a[s.length()-i]=s[i]-'0';//容易忘记-'0' 表现为输出奇怪数字!!!!!! } return; } void shuzhuan(long long a,int b[])//2(2).数字转整型数组 { int ji=0; while(a>0) { ji++; b[ji]=a%10; a/=10; } return; } int compare(int a[],int b[],int len) { for(int i=len;i>=1;i--) { if(a[i]>b[i])return 1; if(a[i]b 若可能a=1;i--) { b[i+k]=a[i]; } return; } void chu(int a[],int b[],int c[],int len1,int len2)//除法模拟运算 余数为剩下的被除数 { int d[1001]; memset(d,0,sizeof(d)); for(int i=len1-len2;i>=0;i--) { memset(tmp,0,sizeof(tmp)); yi(b,tmp,i,len2); while(compare(a,tmp,len1)!=-1)//a大于(等于!!)当前除数 不能写成 ==1!!!! { jian(a,tmp,d,len1); for(int j=1;j<=len1;j++)a[j]=d[j]; memset(d,0,sizeof(d));//实际追求效率 可专门写自减 c[i+1]++;//是i+1 } } return; } int main() { cin>>s1>>s2;//1.输入(字符串) zizhuan(s1,shu1); zizhuan(s2,shu2);//2(1)字符串转数组 //long long a,b; //cin>>a>>b; //shuzhuan(a,shu1);//2(2)变量转数组(为了接下来更大运算) //for(int i=s1.length();i>=1;i--)cout< 1)lans--;//删前导0 且不能删去最后一个0!!!!!!!! for(int i=lans;i>=1;i--)cout<1)len--; for(int i=len;i>=1;i--)cout<



