今后要关注多线程,多核下编程了。其中一个重要的方面是如何将线性的计算算式转换为多个平行计算的算式,从而利用上多线程,多核。
以下是一个初级问题。
今天看到Fibonacci number数列,网上一查,知道中文翻译成斐波纳契数列。
几年前流行的达芬奇密码一书,其中一个谜题,是这样一组数字,13,3,2,21,1,1,8,5,要求是把这组数字重新组合成有规律的数字,这就是数学里面非常有名的Fibonacci number。
这组数列是这样的,1,1,2,3,5,8,13,21,34,55,89,144,233,377……,其规律是后面一个数是前面两位数的合,这个数列是1202年在意大利发表的,实际上,古印度可能很早就知道这个数列了。很多家谱的排列大多遵循这个数列,而后面的数与前面数字的比就逐渐得出了非常著名的黄金分割,也就是1.618033988。自然界的很多事物都遵循黄金分割的比例关系,也是很多建筑设计中常常采用的比例。
#include "stdafx.h"
#include <iostream>
using namespace std;
int fn(int n)
{
if(n<=1)return 1;
return fn(n-1)+fn(n-2);
}
int main(int argc, char* argv[])
{
int n,i;
int d = 290;
cin>>ii;
for(i=0;i<n;i++)
{
int k = fn(i);
for(int j=0;j<i;j++)
{
cout<<"*";
}
cout<<k<<endl;
}
for(;;);
return 0;
}
打印出数列的