题目一:用递归求f(n)=f(n-1)+f(n-2) n>2;n=1时 f(n)=1;n=2 时 f(n)=1;
分析:简单递归就行
题解:
#include<iostream>
#include<stdio.h>
using namespace std;
int function1(int n)
{
if(n==1)
return 1;
if(n==2)
return 1;
return function1(n-1)+function1(n-2);
}
int main()
{
int n;
int num;
cin>>n;
num=function1(n);
cout<<num;
}
题目二:键盘上输入若干个数字,按递减排序,并写入文件中,输入在屏幕上;
分析:先用一个数组接收输入的数字,然后使用冒泡排序将数组按递减重新排序,最后将数组写入文件中。
#include<iostream>
#include<stdio.h>
#include<fstream>
using namespace std;
int main()
{
int n,tempnum;
cin>>n;
int num[n];
for(int i=0;i<n;i++)
{
cin>>num[i];
}
for(int i=0;i<n;i++)//冒泡排序
{
for(int j=i+1;j<n;j++)
{
if(num[j]>num[i])
{
tempnum=num[j];
num[j]=num[i];
num[i]=tempnum;
}
}
}
for(int i=0;i<n;i++)//递减输出
{
cout<<num[i]<<endl;
}
ofstream ofs;
ofs.open("D:\\Workplace\\1.txt",ios::out);
for(int i=0;i<n;i++)
{
ofs<<num[i];
}
return 0;
}
题目三:在Windows下实现多线程并互斥,主线程休眠2秒,次线程休眠1秒;
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI Fun(LPVOID lpParamter)//子线程
{
for (int i = 0; i < 10; i++)
{
cout << "A Thread Fun Display!" << endl;
Sleep(1000);//每次休眠1000ms
}
return 0;
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);//创建一个最简单的子线程
CloseHandle(hThread);//关闭句柄
for (int i = 0; i < 10; i++)
{
cout << "Main Thread Display!" << endl;
Sleep(2000);//每次休眠2000ms
}
system("pause");
return 0;
}