函数16道题(含答案)

发布时间:2015-11-20 18:10:27   来源:文档文库   
字号:

函数01:素数

输入一组整数,其中第一个整数为个数n,后续为n整数,输出其中素数的个数。要求将判断一个整数是否用函数实现。

输入3 5 7 9输出2

测试:

输入5 10 11 12 13 14输出2

#include<iostream>

using namespace std;

int f(int a)

{

int i;

for(i=2;i<=a;i++)

if(a%i==0)

break;

if(a==i)

return 1;

else

return 0;

}

int main()

{

int d=0,n,m,i;

cin>>n;

for(i=1;i<=n;i++)

{cin>>m;

d+=f(m);

}

cout<

return 0;

}

函数02:因数个数之

输入一组整数,计算这些整数的因数个数之。其中第一个整数为个数n,后续为n整数。要求计算一个整数的因数个数用函数实现。
如输入3 6 8 10,其中6的因数个数为4,8的因数个数为4,10的因数个数为10,所以计算结果为12

输入3 6 8 10输出12

测试:

输入5 10 11 12 13 14输出18

#include<iostream>

using namespace std;

int f(int a)

{

int s=0,i;

cin>>a;

for(i=1;i<=a;i++)

if(a%i==0)

s++;

return s;

}

int main()

{

int d=0,n,a,i;

cin>>n;

for(i=1;i<=n;i++)

d+=f(a);

cout<

return 0;

}

函数03Fibonacci数列

输入2 正整数mn(1<=m,n<=10000),输出m n之间所有的Fibonacci数。
要求定义并调用函数fib(n),它的功能是返回第nFibonacci数。
说明:Fibonacci 序列为1 1 2 3 5 8 13 21 ......

输入5 21

输出8 13

#include <iostream>

using namespace std;

int fib(int a)

{ int f0=1,f1=1,f,i;

if(a==1||a==2)

return 1;

else

for(i=1;i

{f=f0+f1;

f0=f1;

f1=f;}

return f;

}

int main()

{ int m,n,i;

cin>>m>>n;

for(i=1;i<=10000;i++)

if(fib(i)>m&&fib(i)

cout<

return 0;

}

函数04:最大值

从键盘输入n对整数,求这些对整数间所有奇数之和的最大值。其中计算两个整数mnm)之间所有奇数的和用函数实现。输入格式:第一个整数为n,后续为n对整数。

输入3 10 20 17 31 40 45

输出192

#include <iostream>

using namespace std;

int f(int a,int b)

{ int s=0,i;

for(i=a;i<=b;i++)

{ if(i%2==1)

s+=i;

}

return s;

}

int main()

{ int n,i,a,b,x=0;

cin>>n;

for(i=1;i<=n;i++)

{ cin>>a>>b;

if(xa,b))

x=f(a,b);

}

cout<

return 0;

}

函数05:阶乘

编写一个递归函数fac,该函数计算n的阶乘,如5的阶乘为5x4x3x2x10的阶乘为1main函数中输入n整数,计算这些整数的阶乘平均值。

第一个整数位个数n,后续为n整数。

输入3 3 4 5

输出50

#include<iostream>

using namespace std;

int fac(int n)

{

if(n==0||n==1)

return 1;

return n*fac(n-1);

}

int main()

{

int n,i,m;

double s=0;

cin>>n;

for(i=1;i<=n;i++)

{

cin>>m;

fac(m);

s+=fac(m);

}

cout<endl;

return 0;

}

函数06:小牛问题

编程求解问题。若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛。(用递归函数方法求解)

输入7 输出6

#include<iostream>

using namespace std;

int f(int n)

{

if(n<4)

return 1;

else

return f(n-1)+f(n-3);

}

int main()

{

int n;

cin>>n;

cout<endl;

return 0;

}

函数07:最大公约数

输入n对整数,计算这n对整数最大公约数之。其中计算一对整数的最大公约数用函数实现。

输入格式:第一个为对数n,后续为n对整数。

输入3 14 18 20 30 25 35 输出17

#include<iostream>

using namespace std;

int f(int a,int b)

{

int i;

for(i=a;i>=1;i--)

{

if(a%i==0&&b%i==0)

break;

}

return i;

}

int main()

{

int a,b,n,i,s=0;

cin>>n;

for(i=1;i<=n;i++)

{

cin>>a>>b;

s+=f(a,b);

}

cout<endl;

return 0;

}

函数08:幂函数

设计一个递归函数,求xn,其中n为非负整数。在main函数中输入x和一个整数n,输出xn

输入3.5 4 输出150.062

#include<iostream>

using namespace std;

double f(double x,int n)

{

if(n==0)

return 1;

else

return x*f(x,n-1);

}

int main()

{

double x;

int n;

cin>>x>>n;

cout<x,n)<<endl;

return 0;

}

函数09:幂函数

定义运算n^k表示nk,从键盘输入整数nk,计算1^k+2^k+……+n^k,其中求n^k用函数实现。

输入3 5

输出276

#include<iostream>

using namespace std;

int f(int x,int n)

{

if(n==0)

return 1;

else

return x*f(x,n-1);

}

int main()

{

int n,k,i,s=0;

cin>>n>>k;

for(i=1;i<=n;i++)

{

s+=f(i,k);

}

cout<endl;

return 0;

}

函数10:素数求和

输入两个正整数minmax,计算[min,max]之间所有的素数之
将判断一个整数是否为素数用函数实现。

输入2 10

输出17

函数11:最小公倍数之

输入n对整数,计算这n对整数最小公倍数之。其中计算一对整数的最小公倍数用函数实现。
输入格式:第一个为对数n,后续为n对整数。

输入2 3 5 4 8输出23

函数12:逆序求和

从键盘输入一组整数(以0结束),计算这组整数逆序后之
其中将一个整数逆序用函数实现,整数123逆序为321、整数-345逆序为-543

输入234 894 -94 736 0

输出1518

函数13:数位计算

输入一组正整数(以0结束),输出其中数位之和为奇数的整数。
其中求个数的数位之和用函数实现。

输入12 22 45 88 0

输出12 45

函数14:数值计算

输入2个正整数an,求a+aa+aaa+aa…a(na)
例如,输入23,则计算2+22+222,输出246
将求ia组成的数用函数实现,即函数int fint aint i)的返回值为ia的值,例如f32)值为33

输入 2 3

输出246

函数15:累加

编写一个函数f(n)=1+2+...+nmain函数从键盘输入mn,利用该函数计算并输出f(m)+f(n)

输入10 5

输出70

函数16:利用函数计算平均值

编写一个函数fx),若x>0函数返回值为1,若x<0函数返回值为-1,若x=0函数返回值为0,利用该函数实现计算输入的n整数中正整数的平均值。

输入格式中第一个为整数个数n,后续为n整数。

输入5 2 5 -5 3 -3

输出3.33333

函数17:数根问题递归求解

输入n正整数(输入格式中第一个为整数个数n,后续为n整数),输出各个数的数根。要求计算个数的数根部分利用递归函数实现。数根的定义:对于一个正整数n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个位数,这个位数也算是n的数根。例如:考虑242+4=66就是24的数根。考虑393+9=121+2=33就是39的数根。

样例输入5 23 424 98 632 12345样例输出5 1 8 2 6

函数18:奇数判断

题目描述

输入若干个正整数(输入时以0结束),输出其中所有的奇数及奇数个数。要求判断个数num的奇偶写成函数bool isoddnum),奇数返回true,否则返回false

样例输入

23 4 235 3 52 30 19 11 0

样例输出

23 235 3 19 11 5

函数19:利用一个自定义函数解决完数和素数问题

题目描述

编写一个函数求个数的所有因子之。主函数中输入两个整数mn,利用该函数依次实现下列问题:1)找出n以内所有完数 2)找出m~n间所有素数 提示:完数定义为除自身外的所有因子之和等于它本身的数;素数定义为除了能被1和自身整数外,不能被其它数整数。注意:完数和素数分2行显示。

样例输入

50 100

样例输出

6 28

53 59 61 67 71 73 79 83 89 97

函数20fibonacci数列倒数求和

题目描述

计算1+1+1/2+1/3+1/5+1/8+…,当最后一项小于e(用户输入)时结束。提示各项的分母为fibonacci数列:1,1,2,3,5,8,13,。。。,要求:求fibonacci数列第n项写成递归函数。

样例输入

0.01

样例输出

3.3417

本文来源:https://www.2haoxitong.net/k/doc/79e85027b9d528ea80c77942.html

《函数16道题(含答案).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式