#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;
}
递归思想没问题
主要卡在输出上
中间一直对函数下手
忽略了输出部分的优化
对字符的长度下手会使代码非常简洁
但是我忘了数字也算字符了

京公网安备 11010502036488号