
解题图解:
下面是代码:
- /**
- * Note: The returned array must be malloced, assume caller calls free().
- */
- int* addToArrayForm(int* num, int numSize, int k, int* returnSize){
- int k_tem =k;
- int klen=0;
- while(k_tem){//看看k有几位
- k_tem /=10;
- klen++;
- }
- int len = numSize>klen?numSize:klen;
- int *arry =(int*)malloc(sizeof(int)*(len+1));
- int num_end=numSize-1;
- int number_in=0;
- for(int i=0;i
- int a=0;
- if(num_end>=0){//k的位数比提供的数组大的情况
- a=num[num_end];
- }
- int bit_number=a+k%10+number_in;
- k/=10;
- number_in=0;
- if(bit_number>=10){
- arry[i]=bit_number-10;
- number_in=1;
- }else{
- arry[i]=bit_number;
- }
- num_end--;
- }
- int flag=0;//用于判断开辟的数组最后是len,还是len+1
- if(number_in==1){//如果最后一位需要进位就让开辟好的数组最后一位置为1
- arry[len]=1;
- flag=1;
- }
- int arry_end=(flag==1?len:len-1);
- int arry_start=0;
- while(arry_start
- //不用临时变量交换数组,可以学一下
- arry[arry_start]=arry[arry_start]^arry[arry_end];
- arry[arry_end]=arry[arry_start]^arry[arry_end];
- arry[arry_start]=arry[arry_start]^arry[arry_end];
- arry_end--;
- arry_start++;
- }
- *returnSize=(flag==1?len+1:len);
- return arry;
- }
-
相关阅读:
Android组件通信——PendingIntent(二十八)
C++多态与虚函数的实现
v.$message不弹框的问题
秋招面经第一弹:百度一面-大数据开发工程师
Python学习笔记--构造(`__new__`)和初始化(`__init__`)
logging日志的使用
01_imx6ull_linux_c_应用编程指南
【数据结构与算法】简单排序
深度优先搜索理论基础及习题797.所有可能的路径
【序列召回推荐】(task5)多兴趣召回Comirec-DR
-
原文地址:https://blog.csdn.net/weixin_56821642/article/details/132912834