引自:维基百科:
依ISO 216的纸张尺寸其长宽之间的比例为1:√2,若其中切掉一块边长和长方形短边相同的正方形,剩下的长方形长宽比例为1:√2-1,也等于1+√2:1,此比例和白银比有关。若一长方形的纵横比为白银比,此长方形有时会称为“白银长方形”,不过白银长方形也可以指纵横比为√2的长方形。
若将白银长方形切掉一块边长和长方形短边相同的正方形,剩下的会是白银长方形,再重复此步骤一次,会得到原来那一种白银长方形,但其比例为原来的√2-1倍[1]。
不过只有纵横比为√2的长方形,其对半切开后可以得到二个纵横比也是√2的较小长方形。
源码实现如下:
// febo.cpp : Defines the entry point for the console application.
//
// sf8.cpp : 定义控制台应用程序的入口点。
//http://blog.csdn.net/sunboyiris
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
long PerIter(int n)
{
if(n==1)
return 1;
else if(n==2)
return 2;
else
return( 2*PerIter(n-1)+ PerIter(n-2));
}
int main()
{
int N,MAXN=100;
long set,set1,set2;
for(int i=1;i<100;i++)
{ set1=PerIter(i);cout<<set1<<endl; }
system("PAUSE");
return EXIT_SUCCESS;
}