编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{ int *p;
p=new int[20];
*p=1;
*(p+1)=1;
cout<<*p<<"\t";
cout<<*(p+1)<<"\t";
p=p+2;
for (int i=3;i<=20;i++)
{ *p=*(p-1)+*(p-2);
cout<<*p<<"\t";
if (i%4==0)
cout<<endl;
p++;
}
return 0;
}
编写一个C++风格的程序,建立一个sroot函数,返回其参数的二次方根。重载函数sroot3次,让它返回整数、长整数与双精度数的二次方根
#include<iostream>
#include<cmath>
using namespace std;
double sroot(int i)
{ return sqrt(i);
}
double sroot(long l)
{ return sqrt(l);
}
double sroot(double d)
{ return sqrt(d);
}
int main()
{ int i=12;
long l=1234;
double d=12.34;
cout<<"i的二次方根是:"<<sroot(i)<<endl;
cout<<"l的二次方根是:"<<sroot(l)<<endl;
cout<<"d的二次方根是:"<<sroot(d)<<endl;
return 0;
}
设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和。例如,一下魔方
31 3 5 25
9 21 19 15
17 13 11 23
7 27 29 1
各行、各列以及两对角线的和都是64
#include <iostream>
using namespace std;
class magic
{
public:
void getdata();
void getfirstmagic();
void generatemagic();
void printmagic();
private:
int m[4][4];
int step;
int first;
int sum;
};
void magic::getdata()
{
first = 1;
step = 2;
sum = 32;
}
void magic::getfirstmagic()
{
int t = first;
for (int i = 0; i < 4; ++i)
{
for (int n = 0; n < 4; ++n)
{
m[i][n] = t;
t+= step;
}
}
}
void magic::generatemagic()
{
for (int i = 0, n = 3; (i < 4) && (n >= 0); ++i, --n)
{
m[i][i] = sum - m[i][i];
m[i][n] = sum - m[i][n];
}
}
void magic::printmagic()
{
for (int i = 0; i < 4; ++i)
{
for (int n = 0; n < 4; ++n)
{
cout << m[i][n] << '\t';
}
cout << endl;
}
}
int main(void)
{
cout << "初始魔方:"<<endl;
magic square;
square.getdata();
square.getfirstmagic();
square.printmagic();
cout << "生成最终魔方:"<<endl;
square.generatemagic();
square.printmagic();
return 0;
}