
建立数组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]为第二行,第三行元素取前两行同列元素的最大公约数。
展开
1个回答
展开全部
前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;
}
结果如下:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询