行数转换法 打印菱形回文数图案
打印如下菱形数字图案输入 n3 时1121123211211要求输入一个正整数 n输出对应大小的菱形。行数1 2 3 4 5; 循环次数 n * 2 - 1空格2 1 0 1 2行转空格-2 -1 0 1 2; i - n2 1 0 1 2; abs(i - n)数字1 3 5 3 1行转数字-2 -1 0 1 2; i - n2 1 0 1 2; abs(i - n)1 2 3 2 1; n - abs(i - n)2 4 6 4 2; (n - abs(i - n)) * 21 3 5 3 1; (n - abs(i - n)) * 2 - 1回文1 2 3 2 1设当前行最大数为k k为当前循环n - abs(i - n);行转回文-2 -1 0 -1 -2; i - k2 1 0 1 2; abs(i - k)1 2 3 2 1; k - abs(i - k)#include stdio.h #include math.h int main() { int n, i, j, k; scanf(%d, n); for (i 1; i 2 * n - 1; i) { for (j 1; j abs(i - n); j) printf( ); k n - abs(i - n); for (j 1; j 2 * k - 1; j) printf(%d, k - abs(j - k)); printf(\n); } return 0; }