⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fibonacci.cpp

📁 一个加载Ezwin的费式序列的动态演示
💻 CPP
字号:
#include <assert.h>
#include <iostream> 
#include <string>
#include <time.h>
#include <ezwin.h>
#include <rect.h>
#define  m  10

using namespace std;


float x[m];     //正方形坐标 x
float y[m];     //正方形坐标 y
float f[m];     //费氏序列
float px[m];    //圆心坐标 x
float py[m];    //圆心坐标 y

int Fibonacci(int);
void DrawRec(SimpleWindow& W,int);
void mSleep(clock_t delay);

Position ULstart(0,0);
SimpleWindow W("Fibonacci", 34.f, 20.f, ULstart);

int ApiMain()
{
	//int i;
	//int m;
    //int Cin();
	 int i;
	 
     W.Open();
     
     f[m]=0.f;           //费氏序列
     
	 for(int j = 1; j <= m; j++)
	 {
			Fibonacci(j);

	 }

	 for(i = 1; i<=m; i++)
	 {
      x[0]=13.f;     //正方形坐标 x
      y[0]=10.f;     //正方形坐标 y
	  px[m]=13.f;    //圆心坐标 x
      py[m]=9.5f;    //圆心坐标 y

	  DrawRec(W,i);
	  mSleep(0.5*CLOCKS_PER_SEC);
	 }
	W.Message("Click here to continue!");	
    return 0;
}
int ApiEnd()
{
	W.Close();

	return 0;
}

void DrawRec(SimpleWindow& W,int i)
{	
    color c;
    switch (i % 4)
	{
	case 1:
		x[i] = x[i-1] - (f[i] + f[i-1]) / 2;
        y[i] = y[i-1] + (f[i] - f[i-1])/ 2;
        px[i] = x[i] + f[i] / 2;
		py[i] = y[i] + f[i] / 2;
		c = Yellow;
		break;
    case 2:
	    x[i] = x[i-1] + (f[i] - f[i-1]) / 2;
		y[i] = y[i-1] + (f[i] + f[i-1]) / 2;
		px[i] = x[i] + f[i] / 2;
		py[i] = y[i] - f[i] / 2;
		c = Red;
	    break;
	
    case 3:
		x[i] = x[i-1] + (f[i] + f[i-1]) / 2;
		y[i] = y[i-1] - (f[i] - f[i-1]) / 2;
        px[i] = x[i] - f[i] / 2;
		py[i] = y[i] - f[i] / 2;
		c = Blue;
		break;

	default:
		x[i] = x[i-1] - (f[i] - f[i-1]) / 2;
		y[i] = y[i-1] - (f[i] + f[i-1]) / 2;
		px[i] = x[i] - f[i] / 2;
		py[i] = y[i] + f[i] / 2;		
		c = Green;
		break;
	
	}

    RectangleShape RecShape(W, x[i],y[i], c, f[i], f[i]);
    RecShape.Draw();			
}

int Fibonacci(int i)
{
	if(i == 1||i == 2)
	{
		f[1] = 1;
		f[2] = 1;
		return f[1],f[2];
		
	}
	else 
	{		
		f[i] = Fibonacci(i - 1) + Fibonacci(i - 2);
		return f[i];			
	}
	return 1;	
}

void mSleep(clock_t delay)
{
	time_t goal = clock() + delay;
	while(clock() < goal);	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -