资源描述:
《[NOIP教案]一、高精度计算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高精度计算高精度计算2减法1、输入高精度计算加法乘法2、保存3、长度预处理4、计算5、输出1、输入2、保存3、长度预处理4、计算5、输出1、输入2、保存3、长度预处理4、计算5、输出ContentsAddYourTextinhereAddYourTextinhereAddYourTextinhereAddYourTextinhereAddYourTextinhere高精度加法1、以字符数组读入:charst1[501],st2[501];scanf(”%s”,st1);scanf(“%s”,st2);高精度加法2、倒序保存在数字数组中inta[501],b[501],i,l
2、en1,len2;memset(a,0,sizeof(a));memset(b,0,sizeof(b));len1=strlen(st1);for(i=1;i<=len1;++i)a[i]=st1[len1-i]-48;len2=strlen(st2);for(i=1;i<=len2;++i)b[i]=st2[len2-i]-48;高精度加法3、长度预处理加法:长度为a,b中较长的那位,放入len1中。if(len13、10;a[i]%=10;}进位i+1位上原有的值//处理最高位a[len1]上是否有值,确认长度为len1,还是len1+1位。if(a[len1+1]>0)len1++;高精度加法5、输出for(i=len1;i>=1;--i)printf(”%d”,a[i]);高精度加法#include#include#includeusingnamespacestd;intmain(){inta[501],b[501],i,len1,len2;charst1[501],st2[501];memset(a,0,sizeof(a));m
4、emset(b,0,sizeof(b));scanf("%s",st1);len1=strlen(st1);for(i=1;i<=len1;++i)a[i]=st1[len1-i]-48;scanf("%s",st2);len2=strlen(st2);for(i=1;i<=len2;++i)b[i]=st2[len2-i]-48;if(len10)len1++;for(i=len1;i>=1;--i)
5、printf("%d",a[i]);return0;}高精度减法1、以字符数组读入,由于后面要进行比较两个高精度数的大小,故建议存放在字符串中。charst1[501],st2[501];strings1,s2,s;intlen1,len2,temp;scanf(”%s”,st1);s1=st1;len1=s1.size();scanf(”%s”,st2);s2=st2;len2=s2.size();If((len16、
7、((len1==len2)&&(s18、p=len1;len1=len2;len2=temp;}高精度减法2、倒序保存在数字数组中inta[501],b[501],i;memset(a,0,sizeof(a));memset(b,0,sizeof(b));for(i=1;i<=len1;++i)a[i]=s1[len1-i]-48;for(i=1;i<=len2;++i)b[i]=s2[len2-i]-48;高精度减法3、长度:len1高精度减法4、计算for(i=1;i<=len1;++i){if(a[i]
9、多个0while((a[len1]==0)&&(len1>1))len1--;高精度减法5、输出for(i=len1;i>=1;--i)printf(”%d”,a[i]);高精度减法#include#include#include#includeusingnamespacestd;intmain(){inta[501],b[501],i,len1,len2,temp;charst1[501],st2[501];strings1,s2,s;memse