ok


私信TA

用户名:oko

访问量:1421

签 名:

等  级
排  名 2185
经  验 2412
参赛次数 0
文章发表 9
年  龄 0
在职情况 学生
学  校 邮电大学
专  业

  自我简介:

TA的其他文章

解题思路:
方法一:1    运用等比求和的公式Sn=a1*(1-q^n)/(1-q);

                2   两种类型选择 double 和 unsifned long long 

                    3  两种计算选择  运用数学函数pow(2,64) 或者 运用循环但不确定最后的值是否能求下

方法二:  对于超长整数的一般都可以采用数组来存储


方法三: 简单直接原样输出

                
注意事项:

参考代码:

方法一:

#include"stdio.h"

#include"math.h"

main()

{

double sum=0;

sum=sum+pow(2.0,64)-1;

printf("%.0lf",sum);

}

方法二:

#include <stdio.h>

main()

{

    int a[51] = {0};

    a[50] = 1;

    for(int i=1; i<=64; i++)

    {

        int jw=0, j=50;

        while(j!=0)

        {

            a[j] = a[j]*2 + jw;

            jw = a[j]/10;

            a[j] %= 10;

            j--;

        }

    }

    int flag = 1;

    for(int i=0; i<=50; i++)

    {

        if(flag && a[i]==0);

        else

        {

            if(i==50)

            {

                printf("%d", a[i]-1);

                return 0;

            }

            flag = 0;

            printf("%d", a[i]);

        }

    }

    return 0;

}

或者

#include <stdio.h>

#include <math.h>

int main() {

    int bigNumber[100] = {0};

    bigNumber[0] = 1;

 

    for (int i = 0; i < 64; ++i) {

 

        for (int j = 0; j < 64; ++j) {

            bigNumber[j]*=2;

        }

 

        for (int j = 0; j < 64; ++j) {

            if (bigNumber[j] > 9) {

                bigNumber[j+1] += 1;

                bigNumber[j] %= 10;

            }

        }

    }

 

 

 

    for (int i = 63; i >= 0; --i) {

        if (bigNumber[i] > 0) {

            for (int j = i; j >= 0; --j) {

                printf("%d",bigNumber[j]);

            }

            break;

        }

    }

    return 0;

}

方法三

#include"stdio.h"

main()

{

    printf("18446744073709552000");

}

 

0.0分

0 人评分

  评论区

  • «
  • »