计算2的N次方(C++)「终于解决」

计算2的N次方(C++)「终于解决」12:计算2的N次方总时间限制:1000ms内存限制:65536kB描述任意给定一个正整数N(N<=100),计算2的n次方的值。输入输入一个正整数N。输出输出2的N次方的值。样例输入5样例输出32提示高精度计算分析及代码:[作者:张欣雨]分析:通过提示可知要用数组模拟计算和进位,是属于大数处理题目的一种。采用长度为100的数组来存储结果,对于每次乘2,从最后一位开始,乘2,如果有进位,那么此位的值为乘积%10;前面…

大家好,欢迎来到IT知识分享网。

12:计算2的N次方

总时间限制: 

1000ms

 

内存限制: 

65536kB

描述

任意给定一个正整数N(N<=100),计算2的n次方的值。

输入

输入一个正整数N。

输出

输出2的N次方的值。

样例输入

5

样例输出

32

提示

高精度计算

分析及代码:[作者:张欣雨]

分析:通过提示可知要用数组模拟计算和进位,是属于大数处理题目的一种。采用长度为100的数组来存储结果,对于每次乘2,从最后一位开始,乘2,如果有进位,那么此位的值为乘积%10;前面的数乘2后,判断后面是否有进位,有进位则加1,再判断此位是否有进位。从后位遍历到第一位,即可以得到最终结果。

#include <iostream>

using namespace std;

int main()

{

    int a[100],n,k;

    cin>>n;

    a[0]=1;

    a[1]=1;

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

    {

        k=0;

        for(int j=1;j<=a[0];j++)

        {

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

            k=a[j]/10;

            a[j]%=10;

        }

        if(k>0)

        {

            a[0]++;

            a[a[0]]=k;

        }

    }

    for(int i=a[0];i>0;i–)

        cout<<a[i];

    return 0;

}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25830.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信