LeetCode066 Plus One C语言

简介:
1
2
Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.

题意:一个非负的整数用数组的形式保存着。其中高位在a[0]。然后对这个数做加1操作,返回这个数组。

PS:原谅我又么有读懂题意---!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**
  * Return an array of size *returnSize.
  * Note: The returned array must be malloced, assume caller calls free().
  */
int * plusOne( int * digits,  int  digitsSize,  int * returnSize) {
     int  i;
     int  index=0;
     int  carry=0;
     int  flag=1;
     //感觉是偷了个懒,只有全是9的时候才进1.。。。。。所以
     //只有个位数加1,不是每个都加,所以用flag
     for (i=digitsSize-1;i>=0;i--){
         //不是每个都加1
         if (digits[i]+flag+index>9){
             digits[i]=0;
             index=1;
             if (i==0){
                 carry=1;
             }
         } else {
             digits[i]=digits[i]+1;
             break ;
         }
         flag=0;
         // printf("%d",digits[i]);
     }    
     //这个值也得写明白,不然程序不知道???
     *returnSize=digitsSize+carry;
 
     if (carry){
         int  *newdigits=( int *) malloc ( sizeof ( int )*digitsSize+1);
         newdigits[0]=1;
         for (i=1;i<digitsSize+1;i++){
             newdigits[i]=0;
         }
         return  newdigits;
     } else {
         return  digits;
     }
    
     
}

PS:迷迷糊糊就写完了。。。。。不执行。。。。。看了一下网上的程序貌似最后还要返回那个returnSize。。。。。。。。。。。。。。这才可以。

其实只有全是9的时候才会产生首位进位。。。。。。。。。。。



本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1865214

相关文章
|
7月前
|
算法 C语言 容器
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(上)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
50 0
|
7月前
|
存储 C语言
Leetcode—— 删除排序数组中的重复项——C语言
Leetcode—— 删除排序数组中的重复项——C语言
|
7月前
|
算法 C语言
Leetcode----旋转数组 ------C语言篇
Leetcode----旋转数组 ------C语言篇
|
7月前
|
C语言
LeetCode---消失的数字---C语言实现
LeetCode---消失的数字---C语言实现
|
7月前
|
算法 C语言 容器
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145(下)
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145
69 7
|
7月前
|
存储 算法 C语言
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
69 5
|
7月前
|
存储 C语言 容器
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(下)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
50 1
|
7月前
|
存储 C语言 容器
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(中)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
51 1
|
7月前
|
存储 自然语言处理 C语言
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(上)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
64 1
|
7月前
|
C语言
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145(中)
从C语言到C++_25(树的十道OJ题)力扣:606+102+107+236+426+105+106+144+94+145
60 1