}
(7)设计一个程序,输入两个正整数,求出这两个整数的最小公倍数。编写一个函数来求两个数的最小公倍数。
#include
int lcm(int x,int y) {
return x*y/gcd(x,y); }
void main() { int a,b; cin>>a>>b;
cout< (8)设计一个程序,输入两个正整数,求出这两个整数的最大公约数。编写一个函数来求两个数的最大公约数。 #include cout<<\ int a,b,result; cin>>a>>b; result = calc(a,b); cout<<\} int calc(int a,int b) { int temp; while((a % b) != 0) { } return b; } (9)对于Hanoi塔问题,如果要移动64个盘子,假设一秒钟移动1000次,大约需要多少年又多少月又 temp = a % b; a = b; b = temp; return x; return gcd(y,x%y); 多少天。#include void main() { } (10)编写一个函数,用非递归方式来求Fibonnaci数列的前n项,n作为函数形参。 #include if(n==1||n==2)return 1; else { } return s; } void main() { int n,i; cout<<\请输入Fibonacci数组的前n项的参数n=\ cin>>n; for(i=1;i<=n;i++) int a=fibo(n-1); int b=fibo(n-2); s+=a+b; int n,i; cout<<\请输入Fibonacci数组的前n项的参数n=\cin>>n; for(i=1;i<=n;i++) cout< if(n==1||n==2)return 1; else { } return s; int a=fibo(n-1); int b=fibo(n-2); s+=a+b; cout< } cout< cout< (11)当x>1时,Hermite多项式定义为: ?1n?0 ?Hn(x)??2xn?1?2xH(x)?2(n?1)H(x)n?1n?1n?2?当输入实数x和整数n后,求出Hermite多项式的前n项的值。分别用递归函数和非递归函数实现。 #include cout<<\请输入实数x(x>1)及整数n:\ int n; double x; cin>>x; cin>>n; cout<<\多项式的值为:\} /* double H(int n,double x) { if(n == 0) else { } } */ double H(int n,double x) { double H0 = 1,H1 = 2 * x,H2; if(n == 0) else { if(n == 1) else return H1; return H0; if(n == 1) else return 2 * x * H(n-1,x) - 2 * (n-1) * H(n-2,x); return 2*x; return 1; } } { } for(int i = 2;i <= n;i++) { } return H2; H2 = 2 * x * H1 - 2 * (i -1 ) * H0; H0 = H1; H1 = H2; (12)阿克曼函数定义为: m?0?n?1 n?0 ?Acm(m,n)??Acm(m?1,1)?Acm(m?1,Acm(m,n?1))n?0,m?0? 其中m,n为正整数。设计一个程序,分别求出Acm(2, 3),Acm(2, 6)的值。要求用一个函数求Acm(m, n)的值。 #include int Acm(int m,int n) { } if(m==0)return n+1; if(n==0)return Acm(m-1,1); if(m>0 && n>0)return Acm(m-1,Acm(m,n-1)); return 0; int m,n; cout<<\函数\do{ do{ cout<<\请输入参数n:\cin>>n; if(n<0)cout<<\不能为负值,\cout<<\请输入参数m:\cin>>m; if(m<0)cout<<\不能为负值,\ }while(m<0); }while(n<0); cout<<\的值为:\ (13)设计一个程序,把输入的整数实现逐位正序和反序输出。如输入一个整数3456,则输出3456和 6543。分别设计两个函数,一个实现正序输出;另一个实现反序输出。 #include cout< void z(int num) { if(num/10) } void main() { int x; cout<<\请输入一个整型数据:\ cin>>x; cout<<\其正序输出为:\ z(x); cout< cout<<\其反序输出为:\ f(x); cout< (14)设计一个程序,由3个文件组成,一个文件main.cpp包含main函数,第2个文件max.cpp包含一个函数max(int, int),第3个文件hex.cpp包含一个函数toHex(int x)将形参x显示为十六进制。建立各文件,然后建立一个多文件项目,输入任意两个整数,求出最大值并以十六进制形式显示。 如果不配置多文件项目,如何更改程序使之能构建运行? (15)已知三角形的三条边长为a、b、c,则三角形的面积为: z(num/10); cout< f(num/10); area?s(s?a)(s?b)(s?c) 其中s=(a+b+c)/2。设计一个函数求三角形的面积。 #include bool triangle(float a,float b,float c); double area(float a,float b,float c); void main(void) { float a,b,c; cout<<\请输入三角形的边a:\cin>>a; cout<<\请输入三角形的边b:\