| 
 | 
 
 
发表于 2022-2-11 18:25:25
|
显示全部楼层
 
 
 
 本帖最后由 jhq999 于 2022-2-11 18:28 编辑  
 
复杂度O(2n) 除非可以用strlen,或者fscan,但这些函数里面也有循环 
- void StrAdd(char (* num)[8])
 
 - {
 
 -         
 
 -         int i=0,j=0,k=0;
 
 -         while(num[0][i+1]||num[1][j+1])
 
 -         {
 
 -                 if (num[0][i+1])i++;
 
 -                 if(num[1][j+1])j++;
 
 -         }
 
 -         k=i>j?i:j+1;
 
 -         while (i>-1||j>-1)
 
 -         {
 
 -                 num[2][k]+=(i<0?'0':num[0][i])+(j<0?'0':num[1][j]);
 
 -                 if (num[2][k]>105)
 
 -                 {
 
 -                         num[2][k]-='9'+1;
 
 -                         num[2][k-1]++;
 
 -                 }
 
 -                 else if(num[2][k])
 
 -                 {
 
 -                         num[2][k]-='0';
 
 -                 }
 
 -                 i--,j--,k--;
 
 -                 
 
 -         }
 
 -         num[2][0]=num[2][0]?'1':'0';
 
 -         
 
 -         int cs=0;
 
 - }
 
 - int main()
 
 - {
 
 -         char num[3][8]={0};
 
 -         scanf("%s%s",num[0],num[1]);
 
 -         StrAdd(num);
 
 -         printf("%s",num[2]);
 
 -     return 0;
 
 - }
 
  复制代码 |   
 
 
 
 |