看热闹来了
![](images/smilies/emot/em02.gif)
#include<stdio.h> #include<math.h> int cal(int n, int r, int c, int y) { int t, t1; n--; t = r < c ? (t1 = n - c , r) : (t1 = n - r, c); t = t < t1 ? t : t1; y += 4 * (n - t + 1) * t; return y + 1 + (r <= c ? r + c - t - t : n * 4 - t * 6 - r - c); } void show_cube(int n) { int i, j, k, d; d = log10(n * n) + 1; if(d == log10(n * 2) + 1) d++; for(k = n - 1, i = 0; i < n; puts(""), k ? k-- : i++) { for(j = 0; j < k; j++) printf("%*c", d, ' '); for(j = 0; j < n - 1; j++) printf("%-*d", d + 1, cal(n, i, j, k)); printf("%-*d", d, cal(n, i, j, k)); for(j = 1; j < n - k - i; j++) printf("%-*d", d, cal(n, i + j, n - 1, k + j)); } } int main() { int n; printf("input n: "); scanf("%d", &n); show_cube(n); return 0; }