`

2的N次方

c++ 
阅读更多
题目的链接为:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1009
题目为:
2的N次方
时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:999            测试通过:500

描述


编程精确计算2的N次方。(N是介于100和1000之间的整数)。


输入


正整数N (100≤N≤1000)


输出


2的N次方


样例输入

200

样例输出

1606938044258990275541962092341162602522202993782792835301376

很明显,这个不能直接算...要用数组模拟计算和进位...是属于大数处理题目的一种。
我们用arr这个长度为2000的数组来存储结果。
对于每次乘2,从最后一位开始,乘2,如果有进位,那么此位的值为乘积%10;前面的数,乘2后,判断后面是否有进位,有进位那么加1,再判断此位是否有进位。
从后位遍历到第一位,即可以得到最终结果。
代码如下:
#include<iostream>
#define MAXNUM 2000
using namespace std;
int arr[MAXNUM];
int main()
{
  int n,index;
  cin>>n;
  //大数乘法
  index=0;
  for(int i=0;i<MAXNUM;i++)
  {
     arr[i]=0; 
  } 
  arr[0]=2;
  for(int i=1;i<n;i++)
  {
     int jinwei=0;
     for(int j=0;j<=index;j++)
     {
         int temp=1;
         if(j==0)
         {
              temp=arr[j]*2;
              if(temp>=10)
              {
                  jinwei=1;
              }
         } 
         else
         {
              temp=arr[j]*2;
              if(jinwei==1)
              {
                 temp=temp+1; 
              }
              if(temp>=10)
              {
                  jinwei=1;
              }
              else
              {
                  jinwei=0; 
              }
         }
         arr[j]=temp%10;
     }
     if(jinwei==1)
     {
          index++;
          arr[index]=1;
     }
  } 
  for(int i=index;i>=0;i--)
  {
     cout<<arr[i]; 
  }
  cout<<endl;
  
  system("pause"); 
  return 0;
}
分享到:
评论

相关推荐

    用C++语言编写的计算2的N次方小程序

    自己做的C++小程序,仅供参考,2的N次方2的N次方2的N次方2的N次方2的N次方

    汇编2的n次方

    通过汇编语言实现2的n次方,作业,调试结果正确

    1170 计算2的N次方.cpp

    1170:计算2的N次方 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10500 通过数: 5410 【题目描述】 任意给定一个正整数N(N≤100),计算2的n次方的值。 【输入】 输入一个正整数N。 【输出】 输出2的N次方的值...

    2的N次方(N为<100的正整数,可扩展)

    ### 2的N次方(N为的正整数,可扩展) #### 知识点 1. **基本概念与应用场景** - **2的N次方**:指的是数字2乘以自己N次的结果。例如,2的3次方表示2×2×2=8。 - 在计算机科学、数学以及日常生活中都有广泛的...

    精确计算2的N次方

    编程精确计算2的N次方。(N是介于100和1000之间的整数)。

    计算2的n次方

    计算2的n次方

    判断是否为2的N次方

    在计算机科学中,判断一个整数是否为2的N次方是一个常见的问题,尤其是在位操作、数据结构优化和算法设计中。2的N次方表示为2^n,其中n是正整数。这类数字在内存分配、数组下标计算、哈希函数设计等方面有着特殊的...

    a的n次方 C++

    ### C++实现a的n次方的不同方法及性能分析 #### 概述 在计算机科学领域,计算一个数的幂(即a的n次方)是常见的数学运算之一。本篇文章将详细介绍如何使用C++语言通过不同的算法实现a的n次方的计算,并对这些算法...

    2的n次方 单链表操作 c语言

    本文将深入解析“2的n次方单链表操作”这一主题,通过C语言实现,不仅展示了如何利用单链表进行数学计算,还涉及了数据结构的灵活运用与算法设计。 ### 一、理解2的n次方运算 首先,“2的n次方”是一个基本的数学...

    java 求n的n次方

    在Java编程语言中,求一个数的n次方是一个常见的数学运算,这涉及到幂运算。在Java中,有两种主要的方法可以实现这个功能:使用Math类的pow()方法和使用循环结构自定义计算。 1. 使用Math.pow()方法: Java的Math类...

    计算x的n次方

    在计算机科学领域,高效地计算一个数的幂(即x的n次方)是常见的运算需求,尤其是在数学、科学计算以及工程应用中。这个话题主要涉及到算法设计与优化,特别是对于大整数处理和浮点数计算的部分。下面将详细讨论如何...

    N次方计算器方便简单好用

    《N次方计算器:简单易用的数学工具》 在当今科技日新月异的时代,各种计算工具层出不穷,其中N次方计算器以其便捷性与实用性脱颖而出。这款软件的设计理念是为用户提供一个简单、直观且高效的计算环境,尤其适合对...

    易语言计算N次方

    在“易语言计算N次方”这个主题中,我们将深入探讨如何使用易语言来执行基本的数学运算,特别是计算数字的N次方、求N次方根以及相关的算法实现。 首先,计算N次方是指将一个数(底数)自乘N次,其公式为`a^n`,其中...

    大数的n次方

    例如,如果要求计算x的n次方,我们可以先计算x*x,再对结果求n/2次方,直到n变为1。这种方法称为“平方再乘”(Square-and-Multiply)算法,其时间复杂度为O(logn)。 在实际编程中,C++标准库提供了`...

    实现一个数的N次方源码

    根据给定的文件信息,我们可以总结出以下关于“实现一个数的N次方源码”的相关知识点: ### 1. 程序目的与功能 该程序的主要目的是计算并输出一个给定数值(记作a)的指定次数幂运算结果(记作b)。即用户可以输入...

    计算2的N次方的CMD命令

    计算2的N次方的CMD命令 计算2的N次方的CMD命令

    计算2的n次方,计算斐波那契数列第n项,计算n的阶乘。

    //计算2的n次方,n &gt; 0。 const char *power2(unsigned n); //计算斐波那契数列第n项,n &gt; 0。 const char * fib(unsigned n); //计算n的阶乘,n &gt; 0。 const char * fac(unsigned n);

    类的编写和使用三个案例 :1 判断三角形并求面积 2 求N次方幂的类 3 人民币转换大写

    2. 求N次方幂的类;3. 人民币转换大写。 ### 1. 判断三角形并求面积 #### 类定义 首先定义一个名为`Triangle`的类,该类用于判断三个边长是否可以构成三角形,并计算该三角形的面积。 ```java public class ...

    n次方根PPT教案学习.pptx

    "n次方根PPT教案学习" 本PPT教案旨在帮助学生理解n次方根的概念、性质和应用。通过本教案,学生将学习平方根、立方根和n次方根的定义和性质,以及如何求解n次方根的问题。 第一页:引入活动 * 平方根和立方根的...

    2的n次方.cpp

    2的n次方

Global site tag (gtag.js) - Google Analytics