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