2002年北理复试上机题目B
1、打印所有不超过 n(n<256)的,其平方具有对称性质的数。如 11*11=121。
#include<iostream> using namespace std; int main() { cout << 0; for (int i = 1; i < 256; i++) { int a[6]; int len = 0; int x = i * i; int t = x; while (t != 0) { a[len++] = t % 10; t = t / 10; } int n = 0; for (int j = 0; j < len; j++) { n *= 10; n += a[j]; } if (n == x)cout << " " << i; } cout << endl; return 0; }
2、编写一个求斐波那契数列的递归函数,输入 n值,使用该递归函数,输出如下图形。例如:当n=6时。
0
0 1 1
0 1 1 2 3
0 1 1 2 3 5 8
0 1 1 2 3 5 8 13 21
0 1 1 2 3 5 8 13 21 34 55
#include<iostream> using namespace std; int F(int i) { if (i == 1)return 0; if (i == 2 || i == 3)return 1; return F(i - 1) + F(i - 2); } int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { for (int j = 0; j < n - i; j++)cout << " "; for (int j = 1; j <= 2 * i - 1; j++) { if (j == 1)cout << F(1); else cout << " " << F(j); } cout << endl; } return 0; }

浙公网安备 33010602011771号