建立数组a,,元素产生方法:用初值a[0]=26及公式a[i+1]=(25*a[i]+375)%1024,

a[0]~a[7]为第一行,a[8]~a[15]为第二行,第三行元素取前两行同列元素的最大公约数。... a[0]~a[7]为第一行,a[8]~a[15]为第二行,第三行元素取前两行同列元素的最大公约数。 展开
 我来答
yanglei5658
推荐于2016-03-04 · TA获得超过4757个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:619万
展开全部

前16个数组元素的计算不难,主要在后面8个最大公约数的计算,最后就是显示的问题。

具体的程序如下:

int gcd(int m, int n)
{
    if (m < n)
    {
        int temp = n;
        n = m;
        m = temp;
    }
    if (m%n == 0)
        return n;
    else
        return gcd(n, m%n);
}

主程序如下:

#include <iostream>
using namespace std;
int main()
{
    int arr[24] = { 26 };
    int N = 24;
    for (int i = 1; i < N-8; i++)
    {
        arr[i] = (25 * arr[i - 1] + 375) % 1024;
    }
    for (int i = N - 8; i < N; i++)
    {
        arr[i] = gcd(arr[i - 16], arr[i - 8]);
    }
    //print array
    for (int i = 0; i < N; i++)
    {
        if (i != 0 && i % 8 == 0)
        {
        cout << endl;
        }
        cout << arr[i] << " ";
    }
    cout << endl;
    return 0;
}

结果如下:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式