#include<stdio.h> #define MAX 21 int t, n; int arr[MAX]; int main(){ scanf("%d", &t); while (t--){ scanf("%d", &n); for (int i = 0; i < 20; i++){ arr[i] = 0; } for (int i = 0; i < n; i++){ scanf("%d", &arr[i]); } for (int i = n-1; i >0; i--){ arr[i] -= arr[i - 1]; } for (int i = 0; i < n; i++){ if (i == 0){ printf("%d", 1); arr[i]--; continue; } if (arr[i] != 0){ printf(" %d", 1); arr[i]--; } else if (arr[i] == 0){ int j = i; int num = 0; while (j--){ if (arr[j] == 0){ num++; continue; } else { num += 2; arr[j]--; break; } } printf(" %d", num); } } printf("\n"); } }
原文:http://www.cnblogs.com/Edward-zy/p/6360031.html