题解 | #添加逗号#

添加逗号

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

在这道题上尝试了不少方法,包括递归等等,最后还是选择了最笨的办法

思路是:将数字的每三位保存在一个数组中,因为n<=2,000,000,000 所以只需要一个四个int大小的数组就够了。要注意

1.输出的时候逆序输出(长度为三位,不足三位补0)
2.最后三个数字没有逗号,当数字只有三位或则小于三位的时候原样输出(也就是代码中arr[1]==0的时候)

#include<stdio.h>

int main()
{
   long long int n;
    int arr[4]={0};
    int sz=0;
    scanf("%lld",&n);
    int i = 0;
    while(n)
    {
        arr[i++]=n%1000;
        n/=1000;  
    }
    for(i=3;i>0;--i)
    {
        if(arr[i]!=0)
        {
            printf("%d,",arr[i]);
        }
    }
   if(arr[1]==0)
   {
        printf("%d",arr[0]);
   }
    else
         printf("%03d",arr[0]);
    return 0;
}
全部评论

相关推荐

2 1 评论
分享
牛客网
牛客企业服务