一维数组、二维数组、字符串总结

首先让我们看看一维数组

一维数组主要在高精度计算上,所谓高精度计算,也就是模拟计算过程,然后就没有什么了……

然后是二维数组

二维数组就是坐标系,难点在坐标的变化上:

//1顺时针旋转90度
	for(j=1;j<=n;j++)
		for(i=1;i<=n;i++)
			c[j][n-i+1]=a[i][j];	
	if(equ(b,c))//equ判断两个数是否相等
	{
		printf("1");
		return 0;
	}
//2逆时针旋转90度
	for(j=n;j>=1;j--)
		for(i=1;i<=n;i++)
			c[n+1-j][i]=a[i][j];
	if(equ(b,c))
	{
		printf("2");
		return 0;
	}
//3中心对称交换
	if(a[n/2+1][n/2+1]==b[n/2+1][n/2+1])
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				c[n-i+1][n-j+1]=a[i][j];
	if(equ(b,c))
	{
		printf("3");
		return 0;
	}

//4不变
	if(equ(a,b))
	{
		printf("4");
		return 0;
	}
还有各种填充数组等,这里就不展示了。

接下来是字符串

字符串就有很多函数了

这里,a,b为一个字符串:

strlen(a):求a的长度

strcpy(b,a):将a复制到b里

strcmp(a,b):比较a和b(字典序)

strcat(a,b):连接a和b

还有很多……

接下来是string

a.length():a的长度

a.substr(i,j):字符串a里从i开始后的j个字符

a.find(b):如果b不是a的字串,返回-1,否则返回第一次出现的串的第一个字符位置。

在字符串中取数,介绍一种方法:

例如:a[3]={123};

t=0;
for(i=0;i<3;i++)
if(a[i]!=',')
t=t*10+a[i]-'0';

第一次:t=0;t=0*10+1;t=1;

第二次: t=1; t=1*10+2;t=12;

第三次:t=12; t=12*10+3;t=123;

经过三次循环,数就取出来了。

好啦总结就到这里。

*********************************************************************************************







你可能感兴趣的:(动态规划)