打印目录,斐波那契数列的递归与循环,牧场牛数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return 0;
}
//打印目录.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <cstdio>
#include <cstring>
#include<iostream>
#include <Windows.h>
using namespace std;
printDir(szPath,0);
//RemoveDirectory(szPath)//删除空文件夹
rቤተ መጻሕፍቲ ባይዱturn 0;
}
void printDir(char* sPath,int space)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
DWORDLONG dd = MAXDWORD;
if (hFind == INVALID_HANDLE_VALUE)
printf ("无效的文件句柄。得到最后的错误报告%d\n", GetLastError());
else
{
do
{
if (FindFileData.cFileName[0] == '.')
continue;//将.和..略过
DWORDLONG FileSize = (FindFileData.nFileSizeHigh * dd) + (FindFileData.nFileSizeLow);
3循环和递归的方式生成树形菜单。数据项存储以连续记录的方式存在。输出方式为下一级输出右缩进一定的空位
表结构与内容
MenuID MenuText MenuParent
0001文件0
0002编辑0
0005打开0001
0006新建0001
0011 access数据库0006
0012 VFP的Dbf 0006
dd += 1;
char szPath[200] = {0};
strcpy(szPath,sPath);
if(szPath[strlen(szPath) - 1] != '\\')//转义字符
strcpy(szPath + strlen(szPath),"\\*.*");
hFind = FindFirstFile((LPCWSTR)szPath,&FindFileData);
for(int i = 0;i < space;i++)
cout<<' ';
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
char szp[200];
printf("%s,%ld ---文件夹\n",FindFileData.cFileName,FileSize);
int Rec_Fibonacci(int n = 30)
{
if(n == 0 || n == 1)
return 1;
else
return Rec_Fibonacci(n - 1) + Rec_Fibonacci(n - 2);
}
循环:运用循环求
for(i = 30;i >= 1;i--)
{
if(i == 0 || i == 1)
all = all + total(idd);
return all;
}
int _tmain(int argc, _TCHAR* argv[])
{
int num,all = 0,i;
cout<<"请输入年数:";
cin>>num;
for(int i = 1;i <= num;i++)
{
all = total(i);
void printDir(char* szPath,int space);
int _tmain(int argc, _TCHAR* argv[])
{
char szPath[100] = {0};
cout<<"请输入一个目录的完整路径(不要出现中文目录):\n";
cin.getline(szPath,100);
sprintf(szp,"%s\\%s",sPath,FindFileData.cFileName);
printDir(szp,space + 5);
//::RemoveDirectory(szp)//删除空文件夹
}
else
{
printf("%s,%ld ---文件\n",FindFileData.cFileName,FileSize);
实验报告
1任务概述(任务说明)
1 f(n)=f(n-1)+f(n-2) f(0)=f(1)=1,求斐波那契数列第20项,分别用循环和递归的方式,比较时间效率。提示:可以使用c函数clock取出当前系统时间,计算前后各一次,两次相减除以每秒的时钟数,就可以得到以秒为单位的差距
2用递归方式打印c盘的目录,下一级缩进的方式。为了减少数量,可以不选择c盘
{
int RF;
double Finish_Start,Start,Finish;
Start = clock();
RF = Rec_Fibonacci();
Finish = clock();
Finish_Start = Finish - Start;
cout<<"递归求得Fibonacci数列的第30项为:"<<RF<<endl;
0013剪切0002
0014复制0002
0015完全复制0014
0016格式0002
0017最近的文档0005
0019最近的数据库0005
0018粘贴0002
如果有困难,可以选择
1牛第四年生小牛问题,每一头牛都可以从第四年开始每年生一头小牛,牛不会死,求第二十年的牛数
2设计思路(包括技术基础等)
1.递归:运用递归算法求
all++;
cout<<"第"<<i<<"年后共有"<<all<<"头牛."<<endl;
}
getch();
return 0;
}
5执行过程截屏
斐波那契数列的递归与循环:
打印目录:
牧场牛数:
6总结
第二题一直都没怎么理解,所以我只能做到这种地步。
第三题只要是对题目的理解,并化为相对简单的数学问题。
//DeleteFile(FindFileData.cFileName);//删除文件,需要去除文件属性才能成功
}
}
while(::FindNextFile(hFind,&FindFileData));
FindClose(hFind);
}
}
//牧场牛数.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
all = all + total(idd);
return all;
}
3程序结构描述
4源码,文档化
//斐波那契数列的递归与循环.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
//递归求Fibonacci数列
int Rec_Fibonacci(int n = 30)
{
if(n == 0 || n == 1)
return 1;
else
return Rec_Fibonacci(n - 1) + Rec_Fibonacci(n - 2);
#include <iostream>
#include<conio.h>
using namespace std;
int total(int num)
{
int idd,all = num;
if(num <= 0)
return 0;
else if(num <= 4)
return num;
else
for(idd = num - 4;idd >= 0;idd--)
}
//循环求Fibonacci数列
int Cir_Fibonacci()
{
int i,Sum = 0;
for(i = 30;i >= 1;i--)
{
if(i == 0 || i == 1)
Sum += 1;
if(i >= 2)
Sum += (2 * i - 3);
}
return Sum;
}
int _tmain(int argc, _TCHAR* argv[])
cout<<"递归求得Fibonacci数列的第30项所花费的时间为:"<<setprecision(15)<<(double)(Finish_Start / CLOCKS_PER_SEC)<<endl;
int CF;
Start = clock();
CF = Cir_Fibonacci();
Finish = clock();
Finish_Start = Finish - Start;
cout<<"循环求得Fibonacci数列的第30项为:"<<RF<<endl;
cout<<"循环求得Fibonacci数列的第30项所花费的时间为:"<<setprecision(15)<<(double)(Finish_Start / CLOCKS_PER_SEC)<<endl;
Sum += 1;
if(i >= 2)
Sum += (2 * i - 3);
}
2.用递归方式打印c盘的目录
4.
int total(int num)
{
int idd,all = num;
if(num <= 0)
return 0;
else if(num <= 4)
return num;
else
for(idd = num - 4;idd >= 0;idd--)
}
//打印目录.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <cstdio>
#include <cstring>
#include<iostream>
#include <Windows.h>
using namespace std;
printDir(szPath,0);
//RemoveDirectory(szPath)//删除空文件夹
rቤተ መጻሕፍቲ ባይዱturn 0;
}
void printDir(char* sPath,int space)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
DWORDLONG dd = MAXDWORD;
if (hFind == INVALID_HANDLE_VALUE)
printf ("无效的文件句柄。得到最后的错误报告%d\n", GetLastError());
else
{
do
{
if (FindFileData.cFileName[0] == '.')
continue;//将.和..略过
DWORDLONG FileSize = (FindFileData.nFileSizeHigh * dd) + (FindFileData.nFileSizeLow);
3循环和递归的方式生成树形菜单。数据项存储以连续记录的方式存在。输出方式为下一级输出右缩进一定的空位
表结构与内容
MenuID MenuText MenuParent
0001文件0
0002编辑0
0005打开0001
0006新建0001
0011 access数据库0006
0012 VFP的Dbf 0006
dd += 1;
char szPath[200] = {0};
strcpy(szPath,sPath);
if(szPath[strlen(szPath) - 1] != '\\')//转义字符
strcpy(szPath + strlen(szPath),"\\*.*");
hFind = FindFirstFile((LPCWSTR)szPath,&FindFileData);
for(int i = 0;i < space;i++)
cout<<' ';
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
char szp[200];
printf("%s,%ld ---文件夹\n",FindFileData.cFileName,FileSize);
int Rec_Fibonacci(int n = 30)
{
if(n == 0 || n == 1)
return 1;
else
return Rec_Fibonacci(n - 1) + Rec_Fibonacci(n - 2);
}
循环:运用循环求
for(i = 30;i >= 1;i--)
{
if(i == 0 || i == 1)
all = all + total(idd);
return all;
}
int _tmain(int argc, _TCHAR* argv[])
{
int num,all = 0,i;
cout<<"请输入年数:";
cin>>num;
for(int i = 1;i <= num;i++)
{
all = total(i);
void printDir(char* szPath,int space);
int _tmain(int argc, _TCHAR* argv[])
{
char szPath[100] = {0};
cout<<"请输入一个目录的完整路径(不要出现中文目录):\n";
cin.getline(szPath,100);
sprintf(szp,"%s\\%s",sPath,FindFileData.cFileName);
printDir(szp,space + 5);
//::RemoveDirectory(szp)//删除空文件夹
}
else
{
printf("%s,%ld ---文件\n",FindFileData.cFileName,FileSize);
实验报告
1任务概述(任务说明)
1 f(n)=f(n-1)+f(n-2) f(0)=f(1)=1,求斐波那契数列第20项,分别用循环和递归的方式,比较时间效率。提示:可以使用c函数clock取出当前系统时间,计算前后各一次,两次相减除以每秒的时钟数,就可以得到以秒为单位的差距
2用递归方式打印c盘的目录,下一级缩进的方式。为了减少数量,可以不选择c盘
{
int RF;
double Finish_Start,Start,Finish;
Start = clock();
RF = Rec_Fibonacci();
Finish = clock();
Finish_Start = Finish - Start;
cout<<"递归求得Fibonacci数列的第30项为:"<<RF<<endl;
0013剪切0002
0014复制0002
0015完全复制0014
0016格式0002
0017最近的文档0005
0019最近的数据库0005
0018粘贴0002
如果有困难,可以选择
1牛第四年生小牛问题,每一头牛都可以从第四年开始每年生一头小牛,牛不会死,求第二十年的牛数
2设计思路(包括技术基础等)
1.递归:运用递归算法求
all++;
cout<<"第"<<i<<"年后共有"<<all<<"头牛."<<endl;
}
getch();
return 0;
}
5执行过程截屏
斐波那契数列的递归与循环:
打印目录:
牧场牛数:
6总结
第二题一直都没怎么理解,所以我只能做到这种地步。
第三题只要是对题目的理解,并化为相对简单的数学问题。
//DeleteFile(FindFileData.cFileName);//删除文件,需要去除文件属性才能成功
}
}
while(::FindNextFile(hFind,&FindFileData));
FindClose(hFind);
}
}
//牧场牛数.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
all = all + total(idd);
return all;
}
3程序结构描述
4源码,文档化
//斐波那契数列的递归与循环.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
//递归求Fibonacci数列
int Rec_Fibonacci(int n = 30)
{
if(n == 0 || n == 1)
return 1;
else
return Rec_Fibonacci(n - 1) + Rec_Fibonacci(n - 2);
#include <iostream>
#include<conio.h>
using namespace std;
int total(int num)
{
int idd,all = num;
if(num <= 0)
return 0;
else if(num <= 4)
return num;
else
for(idd = num - 4;idd >= 0;idd--)
}
//循环求Fibonacci数列
int Cir_Fibonacci()
{
int i,Sum = 0;
for(i = 30;i >= 1;i--)
{
if(i == 0 || i == 1)
Sum += 1;
if(i >= 2)
Sum += (2 * i - 3);
}
return Sum;
}
int _tmain(int argc, _TCHAR* argv[])
cout<<"递归求得Fibonacci数列的第30项所花费的时间为:"<<setprecision(15)<<(double)(Finish_Start / CLOCKS_PER_SEC)<<endl;
int CF;
Start = clock();
CF = Cir_Fibonacci();
Finish = clock();
Finish_Start = Finish - Start;
cout<<"循环求得Fibonacci数列的第30项为:"<<RF<<endl;
cout<<"循环求得Fibonacci数列的第30项所花费的时间为:"<<setprecision(15)<<(double)(Finish_Start / CLOCKS_PER_SEC)<<endl;
Sum += 1;
if(i >= 2)
Sum += (2 * i - 3);
}
2.用递归方式打印c盘的目录
4.
int total(int num)
{
int idd,all = num;
if(num <= 0)
return 0;
else if(num <= 4)
return num;
else
for(idd = num - 4;idd >= 0;idd--)