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;
}

 

posted @ 2019-08-11 12:18  郭怡柔  阅读(128)  评论(0)    收藏  举报