函数16道题含问题详解.docx

上传人:b****6 文档编号:5157230 上传时间:2022-12-13 格式:DOCX 页数:11 大小:16.93KB
下载 相关 举报
函数16道题含问题详解.docx_第1页
第1页 / 共11页
函数16道题含问题详解.docx_第2页
第2页 / 共11页
函数16道题含问题详解.docx_第3页
第3页 / 共11页
函数16道题含问题详解.docx_第4页
第4页 / 共11页
函数16道题含问题详解.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

函数16道题含问题详解.docx

《函数16道题含问题详解.docx》由会员分享,可在线阅读,更多相关《函数16道题含问题详解.docx(11页珍藏版)》请在冰豆网上搜索。

函数16道题含问题详解.docx

函数16道题含问题详解

函数01:

素数

输入一组整数,其中第一个整数为个数n,后续为n个整数,输出其中素数的个数。

要求将判断一个整数是否用函数实现。

输入3579输出2

测试:

输入51011121314输出2

#include

usingnamespacestd;

intf(inta)

{

inti;

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

if(a%i==0)

break;

if(a==i)

return1;

else

return0;

}

intmain()

{

intd=0,n,m,i;

cin>>n;

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

{cin>>m;

d+=f(m);

}

cout<

return0;

}

 

函数02:

因数个数之和

输入一组整数,计算这些整数的因数个数之和。

其中第一个整数为个数n,后续为n个整数。

要求计算一个整数的因数个数用函数实现。

如输入36810,其中6的因数个数为4,8的因数个数为4,10的因数个数为10,所以计算结果为12。

输入36810输出12

测试:

输入51011121314输出18

#include

usingnamespacestd;

intf(inta)

{

ints=0,i;

cin>>a;

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

if(a%i==0)

s++;

returns;

}

intmain()

{

intd=0,n,a,i;

cin>>n;

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

d+=f(a);

 

cout<

return0;

}

函数03:

Fibonacci数列

输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。

要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。

说明:

Fibonacci序列为1123581321......

输入521

输出813

#include

usingnamespacestd;

intfib(inta)

{intf0=1,f1=1,f,i;

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

return1;

else

for(i=1;i

{f=f0+f1;

f0=f1;

f1=f;}

returnf;

}

intmain()

{intm,n,i;

cin>>m>>n;

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

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

cout<

return0;

}

 

函数04:

最大值

从键盘输入n对整数,求这些对整数间所有奇数之和的最大值。

其中计算两个整数m、n(m

输入格式:

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

输入3102017314045

输出192

#include

usingnamespacestd;

intf(inta,intb)

{ints=0,i;

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

{if(i%2==1)

s+=i;

}

returns;

}

intmain()

{intn,i,a,b,x=0;

cin>>n;

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

{cin>>a>>b;

if(x

x=f(a,b);

}

cout<

return0;

}

函数05:

阶乘

编写一个递归函数fac,该函数计算n的阶乘,如5的阶乘为5x4x3x2x1,0的阶乘为1。

main函数中输入n个整数,计算这些整数的阶乘平均值。

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

输入3345

输出50

#include

usingnamespacestd;

intfac(intn)

{

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

return1;

returnn*fac(n-1);

}

intmain()

{

intn,i,m;

doubles=0;

cin>>n;

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

{

cin>>m;

fac(m);

s+=fac(m);

}

cout<

return0;

}

 

函数06:

小牛问题

编程求解问题。

若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛。

(用递归函数方法求解)

输入7输出6

#include

usingnamespacestd;

intf(intn)

{

if(n<4)

return1;

else

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

}

intmain()

{

intn;

cin>>n;

cout<

return0;

}

函数07:

最大公约数

输入n对整数,计算这n对整数最大公约数之和。

其中计算一对整数的最大公约数用函数实现。

输入格式:

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

输入3141820302535输出17

#include

usingnamespacestd;

intf(inta,intb)

{

inti;

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

{

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

break;

}

returni;

}

intmain()

{

inta,b,n,i,s=0;

cin>>n;

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

{

cin>>a>>b;

s+=f(a,b);

}

cout<

return0;

}

 

函数08:

幂函数

设计一个递归函数,求x的n次幂,其中n为非负整数。

在main函数中输入x和一个整数n,输出x的n次幂。

输入3.54输出150.062

#include

usingnamespacestd;

doublef(doublex,intn)

{

if(n==0)

return1;

else

returnx*f(x,n-1);

}

intmain()

{

doublex;

intn;

cin>>x>>n;

cout<

return0;

}

 

函数09:

幂函数

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

输入35

输出276

#include

usingnamespacestd;

intf(intx,intn)

{

if(n==0)

return1;

else

returnx*f(x,n-1);

}

intmain()

{

intn,k,i,s=0;

cin>>n>>k;

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

{

s+=f(i,k);

}

cout<

return0;

}

函数10:

素数求和

输入两个正整数min、max,计算[min,max]之间所有的素数之和。

将判断一个整数是否为素数用函数实现。

输入210

输出17

 

函数11:

最小公倍数之和

输入n对整数,计算这n对整数最小公倍数之和。

其中计算一对整数的最小公倍数用函数实现。

输入格式:

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

输入23548输出23

函数12:

逆序求和

从键盘输入一组整数(以0结束),计算这组整数逆序后之和。

其中将一个整数逆序用函数实现,整数123逆序为321、整数-345逆序为-543。

输入234894-947360

输出1518

函数13:

数位计算

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

其中求一个数的数位之和用函数实现。

输入122245880

输出1245

函数14:

数值计算

输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。

例如,输入2和3,则计算2+22+222,输出246。

将求i个a组成的数用函数实现,即函数intf(inta,inti)的返回值为i个a的值,例如f(3,2)值为33。

输入23

输出246

函数15:

累加和

编写一个函数f(n)=1+2+...+n。

main函数从键盘输入m、n,利用该函数计算并输出f(m)+f(n)。

输入105

输出70

 

函数16:

利用函数计算平均值

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

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

输入525-53-3

输出3.33333

函数17:

数根问题递归求解

输入n个正整数(输入格式中第一个为整数个数n,后续为n个整数),输出各个数的数根。

要求计算一个数的数根部分利用递归函数实现。

数根的定义:

对于一个正整数n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个一位数,这个一位数也算是n的数根。

例如:

考虑24,2+4=6,6就是24的数根。

考虑39,3+9=12,1+2=3,3就是39的数根。

样例输入5234249863212345样例输出51826

函数18:

奇数判断

题目描述

输入若干个正整数(输入时以0结束),输出其中所有的奇数及奇数个数。

要求判断一个数num的奇偶写成函数boolisodd(num),奇数返回true,否则返回false。

样例输入

2342353523019110

样例输出

23235319115

 

函数19:

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

题目描述

编写一个函数求一个数的所有因子之和。

主函数中输入两个整数m、n,利用该函数依次实现下列问题:

1)找出n以内所有完数;2)找出m~n间所有素数提示:

完数定义为除自身外的所有因子之和等于它本身的数;素数定义为除了能被1和自身整数外,不能被其它数整数。

注意:

完数和素数分2行显示。

样例输入

50100

样例输出

628

53596167717379838997

 

函数20:

fibonacci数列倒数求和

题目描述

计算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

 

展开阅读全文
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1