首页 > 编程知识 正文

c语言课程设计大数乘法运算(C语言大数运算之计算某个数的某次方)

时间:2023-05-04 06:24:59 阅读:123243 作者:3837

输入底数和乘数来计算其值。

输入示例: 13 100输出示例: 13 ^ 100=24793351109659725351072884787414981218909406158698398375610728015828015828015 include stdio.h # definen 1000 int cal (intv [ ],int x,int n ) {int i,j,k,cp,s; v[N-1]=1; s=N-2; for(I=1; in 1; I ) {cp=0; for(j=n-1; js; -j({k=v[j]*xCP; v[j]=k; cp=k/10; (while(CP ) ) {v[s--]=cp; cp=cp/10; } }返回s; (intmain ) void ) ) {int x,n,v[N],s; printf ('请输入底数和指数:'); 扫描(' % d % d )、x、n ); s=cal(v,x,n ); printf('%d^%d=',x,n ); for(intI=s1; iN; I ) ) printf('%d ',v[i]; }printf((n ); 返回0; )思想:运用数学进位思想,首先确定长度为n的大数组,数组的最后一个元素为1,例如计算13的平方,就是数组的最后一个元素1乘以13得到13,得到1位,即要存储在这个数组空间中的数,在此为3 ) 如果要计算13的平方,请将数组的最后一个元素3乘以13得到39,然后将9另存为数组的最后一个元素。 此时,进入的高位为3,接收用定义的cp进位的值。 其中3将添加到数组倒数第二个元素乘以13的值。 (然后,将数组倒数第二个元素中应保留的值6保留给数组倒数第二个元素,并将需要进位的1继续存储在cp中,然后前进到下一位。 这样,数组的最后三个顺序为169 (即13的平方),并且会持续多次乘法运算。

键码: for(I=1; in 1; I ) {cp=0; //每次进入外层循环时CP=0for(j=n-1; js; -j({k=v[j]*xCP; //实现进位操作v[j]=k; //保存本位cp=k/10; //保留要输入的位数。 定义while循环,在每次退出内层for循环时,将cp的各位依次存储在其进入的位中。 否则,下一次进入内层for循环时最后一个v[j]溢出过多,导致后续错误while(CP(v(s-- )=CP; //s是定义的岗哨,记录数组中的最高位置,便于主函数输出结果。 cp=cp/10; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。