美文网首页
13的100次方的计算

13的100次方的计算

作者: hello_mr_future | 来源:发表于2017-12-02 20:28 被阅读0次

今天看到了这个题,开始的时候不知道怎么,然后就查了各种资料,加之gdb的调试之后总算是有些成效了。现在把它记录下来,整理一下。

题目就是标题,用一个数组存储13的100次方的值,然后输出来。

代码如下:

说明一下:这个代码是我拷的网上的代码,这里只是把他解析一下而已;

1 #include<stdio.h>
2

3 int main()
4 {
5 int a[100]={1,0},b[100]={0};

6 b[-1]=0;
7 int i,t,cut=1;
8 for(i=1;i<101;i++)
9 {
10 for(t=0;t<cut;t++)
11 {
12 b[t]=a[t]=a[t]*13;
13 a[t]=a[t]%1000+b[t-1]/1000;
14 if(b[cut-1]!=0)
15 cut++;
16 }
17 }
18 printf("13的100次方是:");
19 for(i=cut-1;i>=0;i--)
20 {
21 printf("%d",a[i]);
22 }
23 printf("\n");
24 return 0;
25 }

如下是我进行gdb调试的结果。

image image image image

从上面的过程可以看出来,a,b数组在不断的扩充;如下示出13的次方,可以进行对比。

13^1=13;

13^2=169;

13^3=2,197;

13^4=28,561;

13^5=371,293;

13^6=4,826,809

......

可以看出来a数组中迭代的是13的次方的每隔3位数字,而且a[0]保存的是低三位,依次提高;b数组中存储的是每次a数组的对应位的前一个数和13的乘积,并且b[t-1]/1000中的数就是超出三位数的数,加到高位a[t]中,即:低三位向高位的进位,然后a的高位加上之后继续可以求出a的高位。简单的说就是,13的每次乘积每三位一分隔,然后迭代低三位13%1000,就是下一个迭代的低三位,然后低位的进位与高位的乘积相加的结果13,就是下一个迭代的高三位。依次循环继续执行。

相关文章

  • 13的100次方的计算

    今天看到了这个题,开始的时候不知道怎么,然后就查了各种资料,加之gdb的调试之后总算是有些成效了。现在把它记录下来...

  • C语言求2的n次方

    C语言求2的n次方。计算机整数的范围最大是 0~2^64-1。如果计算2的100次方,使用浮点数将损失结果的精度。...

  • PHP-2的N次方-溢出问题

    但是如果要求计算2的100次方或者3的100次方该怎么办?如果还用上述方法的话肯定会溢出,无法按正常位数显示出来,...

  • 快速幂与斐波那契数列

    快速幂 快速幂的核心是:减少乘法次数。 问题:计算 2的10000次方 普通方法:answer = 1,循环100...

  • day4-练习题

    基础 读程序,总结程序的功能: 功能是:计算2的20次方 功能是:确定1-100这100个整数里 能够被3整除或者...

  • 2的100万次方是多少

    2的100万次方是多少?2的100次方是:1267650600228229401496703205376。这个数字...

  • 作业day5-循环和分支

    基础 读程序,总结程序的功能: 答案:计算2的20次方 答案:计算1-100中能被3或7整除,但不能被21整除的个...

  • Swift - 计算次方(2的N次方,2的随机次方)

    1、使用<<计算2的N次方

  • 斐波那契数列 logn 实现

    对于fibonacci: logn主要是基于计算一个数的n次方的方法。 计算一个数的n次方的方法: 递归方式计算乘...

  • 递归应用(2) 乘方问题

    计算x的y次方:1、如果y为1,直接返回x;2、否则计算xx的y/2次方(如果y为偶数)3、如果y为奇数,计算xx...

网友评论

      本文标题:13的100次方的计算

      本文链接:https://www.haomeiwen.com/subject/ichobxtx.html