`

高精度求解,一,二维动态数组的创建

 
阅读更多

求解2的N次方。100《N《300

#include<iostream>
using namespace std ;
int main()
{
    int a[310]={0},i,n;
    cin>>n ;
    a[0]=2 ; n=n-1 ;
    while(n--)
    {
        for(i=0;i<310;i++)
        {
         a[i] = 2*a[i] ;
        }
         for(i=0;i<310;i++)
        {
          a[i+1] += a[i]/10;
          a[i]=a[i]%10 ;
        }
    }
   bool b = false ;
   for(i=309;i>=0;i--)
   if(b==false){
   if(a[i]!=0)
    {
    b=true ;
    cout<<a[i] ;
    continue ;
    }
   }else{
    cout<<a[i] ;
   }
    cout<<endl ;

}

 

或者
     
#include <iostream>
using namespace std;

#define MAX_LEN 310

int main()
{    
    int n,m,i,j,k;
    cin >> n;
	int res[MAX_LEN] = { 0 };
    res[MAX_LEN-1] = 1;
	m = 1;		//当前结果为m位数
    for(j = 0; j < n; j ++)		//2的n次幂
	{
        for(i = MAX_LEN-1, k = m; i >= 0 && k >= 1; i --, k --)		//从低位往高位依次运算
            res[i] *= 2;              
		for(i = MAX_LEN-1; i > 0; i--)		//进位
		{
			if(res[i] >= 10)
			{
				res[i] -= 10;
				res[i - 1] ++;
				if(MAX_LEN-i == m)
					m ++;
            }
		} 
    }

	for(i = 0; res[i] == 0 && i < MAX_LEN; i++);
	for(; i < MAX_LEN; i++)
		cout << res[i];
	cout << endl;

	return 0;
}
 
动态数组的创建:一,二维数组
  
#include <iostream>
using namespace std;
int main()
{
    int n,m,m1,i,j,e;
     cin>>n>>m;
    char** a = new char*[m];//定义动态二维数组
   int* b = new int[m];//定义动态一维数组
   for (i = 0; i<m; i++)
     a[i] = new char[n+1];//注意一定要是n+1,否则会出错(原因与输入数组有关)
 delete[] b; 
 delete[] b2;
 delete[] c;
 for (m1 = 0; m1<m; m1++)
  delete[] a[m1];
 return 0;
}
  
警告:最后一定要删除delete。
分享到:
评论

相关推荐

    一维二维插值c代码

    二维插值则是在平面内的多个数据点上构建一个连续的表面。下面我们将详细讨论标题和描述中提到的一维插值和二维插值方法,并给出C语言实现的相关知识点。 1. 埃特金不等距插值: 埃特金(Atkinson)插值法是处理非...

    java程序设计

    在这个示例中,通过双层循环来遍历二维数组的每一行,并将行内元素相加,同时比较并记录最大的行之和及其索引。这个过程同样展示了对二维数组的操作和处理。 从上述的Java程序设计实例中,我们可以提炼出以下知识点...

    C 代码 求解矩形上的二维泊松方程, 使用有限元法, 和分段二次三角形单元.rar

    在本压缩包中,我们关注的是使用C语言解决二维...总之,这个C代码实现了有限元方法求解二维矩形上的泊松方程,通过分段二次三角形单元提高了精度。理解这种算法和代码的细节对于学习数值方法和C编程都具有很高的价值。

    2维euler流场求解器

    二维Euler流场求解器是一种用于计算流体动力学问题的软件工具,它专注于解决在二维空间内的Euler方程。Euler方程是一组偏微分方程,描述了不可压缩流体的运动,涵盖了速度、压力、密度和内能等关键物理量的变化。在...

    一维高斯积分点求解算法matlab

    对于一维高斯积分,通常会选取n个积分点以及对应的n个权重系数,使得对于所有形如\[ \int_{-1}^{1} f(x) dx \]的积分都能得到高精度的近似值。这里的f(x)是一次多项式或更高次的多项式函数。 ### 二、MATLAB代码...

    有限差分法求解二维电位函数的MATLAB程序设计及分析 (2001年)

    在MATLAB中实现有限差分法求解二维电位函数,需要编写程序对上述过程进行模拟。关键步骤包括:初始化电位数组、编写迭代过程、设置终止条件。具体程序设计涉及到数组操作、循环控制语句等编程基础,还要用到MATLAB...

    pde显示求解_偏微分方程显式求解_

    在MATLAB编程环境中,我们通常会使用二维数组来表示空间网格,并利用矩阵运算来执行差分操作。例如,“pde显示求解 2.m”和“pde显示求解.m”这两个文件可能包含了具体的MATLAB代码,用于设置网格,定义PDE,执行...

    gaosi.rar_方程组求解_高斯消去法

    例如,可以定义一个二维数组A来存储系数矩阵,另一个二维数组B来存储常数项。 2. **行变换**:通过行交换(`PERMUTE`函数)、行倍加(`ADDScaledRow`函数)和行倍乘(`MultiplyRow`函数)来实现矩阵的行变换。这些...

    C++初级教学文件(ppt)

    一维数组与二维数组(06一维数组与二维数组.ppt)** 数组是存储多个相同类型数据的有效方式。一维数组相当于线性结构,而二维数组则可以理解为表格形式的数据存储。这部分内容会介绍如何声明、初始化和操作数组。 ...

    动态规划求组合数终极版

    对于组合数的计算,我们可以构建一个二维数组dp[n+1][m+1],其中dp[i][j]表示从i个元素中选择j个的方法数。初始化dp[0][0] = 1,因为从0个元素中选0个有且仅有一种方法。然后按照递推关系填充数组: ```python for ...

    用C语言求解N阶矩阵的算法

    矩阵可以用二维数组来表示,其中每个元素都是一个数字。例如,在上面的代码中,我们定义了一个4x4的矩阵`a`,其中每个元素都是一个浮点数。 2. 高斯消去法: 高斯消去法是一种常用的线性方程组求解方法。其基本思想...

    线性方程求解代码

    在C++中,可以利用二维数组存储矩阵,通过行交换、标量乘法和行加法实现这些变换。 2. **克拉默法则**:当系数矩阵A是方阵且可逆时,可以直接计算出未知数的值。克拉默认则涉及到计算子矩阵的行列式,然后用这些...

    中心差分法Matlab源程序

    例如,对于二维情况,可以创建一个二维数组来表示网格上的函数值,然后对每个内部点执行中心差分。 在Matlab中,可以利用向量化操作和内置函数如`diff`来简化代码并提高效率。例如,对于一维情况,`diff`函数可以...

    旅行商TSP 求解最佳路径问题

    邻接矩阵是一个二维数组,其中的元素表示城市之间的距离;邻接表则更节省空间,仅存储相连城市的信息。 2. **初始化路径**:一种常见的初始路径生成方法是随机选择一个起点,然后随机选取未访问过的城市添加到路径...

    Huantwofat之ACM模板库2

    2. **二维树状数组**:是树状数组在二维空间的应用,可以高效地处理矩阵的区间求和。`sum(x, y)`计算矩形`(x, y)`到`(x, y + low(y) - 1)`和`(x + low(x) - 1, y)`到`(x + low(x) - 1, y + low(y) - 1)`的和,`merg...

    常用热电偶转换C语言程序源码.doc

    N型热电偶的转换系数存储在`Var_TtoV_N`数组中,为2x11的二维数组,这种类型的热电偶具有较高的精度和稳定性。 这些系数用于通过多项式插值或查表法计算出特定电压对应的温度值。程序通常会先读取热电偶的电压信号...

    matlab数组字符串 double型数值 算法开发、数据可视化、数据分析以及数值计算 Matlab课程 教程 进阶

    数组可以是数值、字符甚至逻辑值的集合,支持一维、二维及多维数组。在算法开发中,数组操作如索引、切片、拼接和矩阵运算(如乘法、加法)是必不可少的。例如,利用数组索引可以方便地访问和修改数组元素,矩阵乘法...

    递推与递归应用[参照].pdf

    这里我们可以构建一个二维数组F[i,j]来表示到达点(i,j)的路径数,同时使用一个二维数组g[i,j]来标记点(i,j)是否为障碍点。通过以下递推关系式可以计算路径数量: - 如果点(i,j)是障碍点,则F[i,j] = 0。 - 对于第一...

    C语言常用代码[借鉴].pdf

    - `fullxunhuan`函数展示了如何填充一个特定模式的二维数组,比如实现一个全循环矩阵。 2. **ACM小组内部预定函数**: - 这些函数涉及到数值计算的精度问题,如大数的阶乘、乘法、加法、减法等,这些都是在处理...

    Guass消去法解线性方程组(C语言)程序

    1. **初始化矩阵和向量**:代码中定义了两个二维数组`A[7][7]`用于存储系数矩阵,和一个一维数组`b[7]`用于存储线性方程组的常数项,同时预设了一个一维数组`x[7]`用于存放解向量。 2. **前向消元过程**: - 检查...

Global site tag (gtag.js) - Google Analytics