题解 | #添加逗号#

添加逗号

https://www.nowcoder.com/practice/f51c317e745649c0900996fd3f683aed

#include <stdio.h>
void findarr(int n,int arr[4])
{   
    int b;
    int a = 1000;
    static int i = 3;
    b = n / a;
    arr[i] = n % a;
    i--;
    if(i >= 0)
    {
     findarr(b,arr);
    }
}
int main() {
    int n;
    while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        int arr[4] = {0};
        findarr(n,arr);
        int j;
           for (j = 0; j < 4; j++)
          {
           if(arr[j] != 0)
           {
            if(arr[j] < 100 && arr[j - 1] <= 100)
            {
                printf("%d",arr[j]);
                if(j != 3)
             {
                printf(",");
             }
            }
            else
            {
             printf("%03d",arr[j]);
               if(j != 3)
             {
                printf(",");
             }
            }
            }
          }
    }
    return 0;
}

递归思想没问题

主要卡在输出上

中间一直对函数下手

忽略了输出部分的优化

对字符的长度下手会使代码非常简洁

但是我忘了数字也算字符了

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务