题解 | #添加逗号#
添加逗号
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;
}