如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
函数作业及解答--第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。样例输入:1525样例输出:575#include<iostream.h>intgys(inta,intb){inti;for(i=a;i>0;i--)if(a%i==0&&b%i==0){returni;break;}}intgbs(inta,intb){inti;for(i=a;;i++)if(i%a==0&&i%b==0){returni;break;}}intmain(){inta,b,c,d;cin>>a>>b;c=gys(a,b);d=gbs(a,b);cout<<c<<''<<d;return0;}第2题:编写函数factors(num,k),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回0,例如:32=2×2×2×2×2,则factors(32,2)=5。要求输入输出均在主函数中完成。样例输入:42样例输出:2样例输入:83样例输出:0#include<iostream.h>intfactors(intnum,intk){intn=0,a;a=num%k;while(a==0){n++;num=num/k;a=num%k;}returnn;}intmain(){intnum,k,b;cin>>num>>k;b=factors(num,k);cout<<b<<endl;return0;}第3题:编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。样例输入:5样例输出:120、#include<iostream.h>intjc(intn){inta,b=1;for(a=1;a<=n;a++)b=a*b;returnb;}intmain(){intn,s;cin>>n;s=jc(n);cout<<s;return0;}第4题:编写函数,函数功能是:计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。要求输入输出均在主函数中完成。样例输入:500样例输出:4622#include<iostream.h>intsum(intk){intn,c=0,s=0;for(n=k;n>0;n--){if(n%13==0||n%17==0){c++;s+=n;}if(c>=10)break;}returns;}intmain(){intk,s;cin>>k;s=sum(k);cout<<s<<endl;return0;}第5题:编写函数,函数功能是:根据下列公式求π的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。样例输入:0.0005样例输出:3.14058#include<iostream.h>doublepai(doublee){doubles,a,k,p;s=1;a=1/3.0;for(k=2;;k++){s+=a;a=a*(k/(k*2+1));if(a<e)break;}p=s*2;returnp;}intmain(){doublee,p;cin>>e;p=pai(e);cout<<p<<endl;return0;}第6题:编写程序求要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意:0!=1。样例输入:3样例输出:10#include<iostream.h>intjc(inta){ints=1,i;if(a==0)s=1;else{for(i=1;i<=a;i++)s=s*i;}returns;}intmain(){intn,k,s;doublesum=0;cin>>n;for(k=0;k<=n;k++){s=jc(k);sum+=s;}cout<<sum<<endl;return0;}第7题:求数列要求使用函数计算该序列的前N项和SN,直到SN大于q为止,q由键盘输入,输入输出均在主函数中完成。样例输入:50样例输出:50.4167、#include<iostream.h>floatsum(floatq){floats=0,a,n;for(n=1;s<=q;n++){a=(n+1.0)/n;s+=a;}returns;}intmain(){floatq,s;cin>>q;s=sum(q);cout<<s<<endl;return0;}第8题:求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:50样例输出:1.96079#include<iostream.h>floatmyx(intn){floata;inti,s=0;for(i=1;i<=n;i++)s+=i;a=1