黑马程序员技术交流社区
标题:
怎样用数组实现高位乘方
[打印本页]
作者:
fanxing
时间:
2015-6-16 11:46
标题:
怎样用数组实现高位乘方
比如说R^n(0 < R < 99.999, 0 < n <= 25)
作者:
tabor
时间:
2015-6-16 12:46
数组只是存储数据,你的意思是说: 第n个地址存储R^n?
作者:
丁铭检
时间:
2015-6-16 13:17
道理类似,从低位到高位做个循环,加法注意是否越界,越界则向上进位;减法则注意减数与被减数关系,小于则借位。 一种实现,你可以参考一下。 void add(char a[],char b[],int x,int y,int f,int d) { char c[102]; int i; int j; int jin=0; int s=0; int m,ma; int xx,yy; if(d==0) { xx=0;yy=0; } if(d==1) { xx=1;yy=0; } if(d==2) { xx=0;yy=1; } if(d==3) { xx=1;yy=1; } x>y?m=x:m=y; ma=m; i=x-1; j=y-1; for(;m>0;i--,j--,m--) { if(j<yy && i>=xx) s=int(a[i])-48+jin; //将字符转换成整型 else if(i<xx && j>=yy) s=int(b[j])-48+jin; else if(i>=xx && j>=yy) s=(int(a[i])-48+int(b[j])-48+jin); if(s>9) { jin=1; c[m]=char(s+38); } else { jin=0; c[m]=char(s+48); } } if(jin==1) c[0]='1'; else c[0]=' '; if(g==1) { cout<<"两数相加的结果为:"; if(f==0) for(i=0;i<ma+1;i++) cout<<c[i]; else { cout<<'-'; for(i=0;i<ma+1;i++) cout<<c[i]; } } if(g==2) { cout<<"两数相减的结果为:"; if(f==0) for(i=0;i<ma+1;i++) cout<<c[i]; else { cout<<'-'; for(i=0;i<ma+1;i++) cout<<c[i]; } } cout<<endl; } // 减函数 void jian(char a[],char b[],int x,int y,int f,int d) { char c[102]; int i; int j; int jin=0; int s=0; int m,ma; int xx,yy; if(d==0) { xx=0;yy=0; } if(d==1) { xx=1;yy=0; } if(d==2) { xx=0;yy=1; } if(d==3) { xx=1;yy=1; } m=x-1; ma=m; i=x-1; j=y-1; for(;m>=0;i--,j--,m--) { if(j<yy&&i>=xx) s=int(a[i])-48-jin; else if(i>=xx&&j>=yy) s=(int(a[i])-48)-(int(b[j])-48)-jin; if(s<0) { jin=1; c[m]=char(s+58); } else { jin=0; c[m]=char(s+48); } } if(g==1) { cout<<"两数相加的结果为:"; if(f==0) for(i=0;i<ma+1;i++) cout<<c[i]; else { cout<<'-'; for(i=0;i<ma+1;i++) cout<<c[i]; } } if(g==2) { cout<<"两数相减的结果为:"; if(f==0) for(i=0;i<ma+1;i++) cout<<c[i]; else { cout<<'-'; for(i=0;i<ma+1;i++) cout<<c[i]; } } cout<<endl; }
作者:
fanxing
时间:
2015-6-20 12:58
tabor 发表于 2015-6-16 12:46
数组只是存储数据,你的意思是说: 第n个地址存储R^n?
我的意思是说用数组实现像99*99这种乘方运算,只不过位数有点大,不能用编译器的乘法,只能自己用数组实现乘方
作者:
tabor
时间:
2015-6-21 00:01
那就直接OC用自己写个方法结了
作者:
丁铭检
时间:
2015-6-21 10:22
这种东西都是用数组来弄。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2