输入一个正整数 N,打印一个对称数列,从 1 到 N,再从 N 到 1。例如: N=4 时,输出: 1 2 3 4 3 2 1
这个我想了好久都没想出来啊

求解

#include <iostream> int foo(int i) { int n = 0; if (1 == i) n = 1; else n = foo(i - 1) + 3 * (i - 1); std::cout << n << " "; return n; } int Nprint(int n) { unsigned int i = 1; unsigned int N = n - 1; while (i < 2*n) { if (i <= n) std::cout << i << " "; else std::cout << N-- << " "; i++; } return 0; } int main() { foo(5);// 这里是不用循环的,是递归调用的一个特点 std::cout << std::endl; Nprint(6); std::cout << std::endl; return 0; }