数组形式整数加法
个人思路(错的)
1)数组先转换成整型的数
(可以用sizeof得出个数,再依靠个数得出10^sizeof(),将数组转换为整数)
2)数组转换的整数和原本整数相加,取余数放在原来的数组空间里
3)开辟一块新空间,把原来数组空间的值移到新空间里返回
问题:
次方那块一直^,弄成按位与了。在c语言里,可以用循环,或者是pow()表示次方。
结果:
不通过,原因是这种处理不了大数。
参考思路
1)数组形式相加,像加法一样。
2)求k的位数
3)开辟最大位数+1的动态空间
4)保存数据后逆置显示
听过思路,再写,增益点
1)取位数上的数字
我的很愚蠢的。取模后再除:
/while ((float)sum / (float)cur > 1) {
cur = 10 * cur;
num[i] = (sum % cur) / (cur / 10);
i++;}
更好的思路,从最低位一个一个取出来:
int Ksize = 0;
int Kstore = k;
while (Kstore)
{
Kstore /= 10;
Ksize++;
}//得到K的长度
2)为什么返回一个地址?
不仅要返回新创建数组的地址,还要把表示数组个数大小的解引用后传递回)。
3)开辟空间考虑谁打谁小
int len = Asize > Ksize ? Asize : Ksize;//谁长
int* NewArr = (int*)malloc(sizeof(int) * (len+1));//多开一位数
4)考虑数组位数小于整数
今早的事
今早做了一个岗位的机考测评
1)直接考了二叉树的数据结构,不会。
2)算法题就会一两个,后面看了,云里雾里,还要递归。现在头蒙蒙的。
总的来看,这些岗位的机考测评和那些网上的刷题还是挺像的,我如果还是继续学下去,得一两个月后才能说跳一跳能够到这些岗位的边边。