C++编程实例.docx
- 文档编号:27806185
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:50
- 大小:24.38KB
C++编程实例.docx
《C++编程实例.docx》由会员分享,可在线阅读,更多相关《C++编程实例.docx(50页珍藏版)》请在冰豆网上搜索。
C++编程实例
例3.13
欧阳学文
求Fibonacci数列前40个数。
这个数列有如下特点:
第1、2个数为1、1。
从第3个数开始,每个数是其前面两个数之和。
#include
#include
usingnamespacestd;
intmain()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=20;i++)
{
//设备输出字段宽度为12,每次输出两个数
cout< //每输出完4个数后换行,使每行输出4个数 if(i%2==0)cout< f1=f1+f2;//左边的f1代表第3个数,是第1、2个数之和 f2=f2+f1;//左边的f2代表第4个数,是第2、3个数之和 } return0; } 例3.14 100~200间的素数 #include #include #include usingnamespacestd; intmain() { intm,k,i,n=0; boolprime; for(m=101;m<=200;m=m+2) { prime=true; k=int(sqrt(m)); for(i=2;i<=k;i++) if(m%i==0) { prime=false; break; } if(prime) { cout< n=n+1; } if(n%10==0) cout< } cout< } 例3.15 译密码 #include usingnamespacestd; intmain() {charc; while((c=getchar())! ='\n') { if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) { c=c+4; if(c>'Z'&&c<='Z'+4||c>'z') c=c26; } cout< } cout< return0; } 习题: 16、统计个数 #include usingnamespacestd; intmain() {charc; intletters=0,space=0,digit=0,other=0; cout<<"enteroneline: : "< while((c=getchar())! ='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else other++; } cout<<"letter: "< "< "< "< return0; } 17、求Sn=a+aa+aaa+……+aa…a(n个a)的值,n由键盘输入。 #include usingnamespacestd; intmain() { inta,n,i=1,sn=0,tn=0; cout<<"a,n=: "; cin>>a>>n; while(i<=n) { tn=tn+a;//赋值后的tn为i个a组成数的值 sn=sn+tn;//赋值后的sn为多项式前i项之和 a=a*10; ++i; } cout<<"a+aa+aaa+...="< return0; } 18、.求1! +2! ……+20! 、 #include usingnamespacestd; intmain() {floats=0,t=1; intn; for(n=1;n<=20;n++) { t=t*n;//求n! s=s+t;//将各项累加 } cout<<"1! +2! +...+20! ="< return0; } 19、求“水仙花数”例153=13+33+53 #include usingnamespacestd; intmain() {inti,j,k,n; cout<<"narcissusnumbersare: "< for(n=100;n<1000;n++) { i=n/100; j=n/10i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) cout< } cout< return0; } 20、找出1000之内所有的完数例如6的因子是1.2.3而6=1+2+3,所以6是完数 #include usingnamespacestd; intmain() {intm,s,i; for(m=2;m<1000;m++) {s=0; for(i=1;i if((m%i)==0)s=s+i; if(s==m) {cout< cout<<"itsfactorsare: "; for(i=1;i if(m%i==0)cout< cout< } } return0; } 21、2/1,3/2,5/3,8/5,13/8,21/13,…前20项之和 #include usingnamespacestd; intmain() {inti,t,n=20; doublea=2,b=1,s=0; for(i=1;i<=n;i++) {s=s+a/b; t=a; a=a+b;//将前一项分子与分母之和作为下一项的分子 b=t;//将前一项的分子作为下一项的分母 } cout<<"sum="< return0; } 24、输出图形 #include usingnamespacestd; intmain() {inti,k; for(i=0;i<=3;i++)//输出上面4行*号 {for(k=0;k<=2*i;k++) cout<<"*";//输出*号 cout< } for(i=0;i<=2;i++)//输出下面3行*号 {for(k=0;k<=42*i;k++) cout<<"*";//输出*号 cout< } return0; } 习题: 1、求最大公约数和最小公倍数,用主函数条用两个函数 #include usingnamespacestd; intmain() { inthcf(int,int); intlcd(int,int,int); intu,v,h,l; cin>>u>>v; h=hcf(u,v); cout<<"H.C.F="< l=lcd(u,v,h); cout<<"L.C.D="< return0; } inthcf(intu,intv) { intt,r; if(v>u) {t=u;u=v;v=t;} while((r=u%v)! =0) {u=v; v=r;} return(v); } intlcd(intu,intv,inth) {return(u*v/h); } 3、判别素数的函数 #include usingnamespacestd; intmain() { intprime(int);/*函数原型声明*/ intn; cout<<"inputaninteger: "; cin>>n; if(prime(n)) cout< else cout< return0; } intprime(intn) { intflag=1,i; for(i=2;i if(n%i==0) flag=0; return(flag); } 4、.求a! +b! +c! 的值,用一个函数fac(n)求n! 。 4 #include usingnamespacestd; intmain() {intfac(int); inta,b,c,sum=0; cout<<"entera,b,c: "; cin>>a>>b>>c; sum=sum+fac(a)+fac(b)+fac(c); cout< +"< +"< ="< return0; } intfac(intn) { intf=1; for(inti=1;i<=n;i++) f=f*i; returnf; } 7、.验证哥德巴赫猜想: 一个不小于6的偶数可以表示为两个素数之和。 7 #include #include usingnamespacestd; intmain() {voidgodbaha(int); intn; cout<<"inputn: "; cin>>n; godbaha(n); return0; } voidgodbaha(intn) {intprime(int); inta,b; for(a=3;a<=n/2;a=a+2) {if(prime(a)) {b=na; if(prime(b)) cout< } } intprime(intm) {inti,k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k)return1; elsereturn0; } 11、用递归方法求f(n)=12+22+……+n2 #include usingnamespacestd; intmain() { intf(int); intn,s; cout<<"inputthenumbern: "; cin>>n; s=f(n); cout<<"Theresultis"< return0; } intf(intn) { if(n==1) return1; else return(n*n+f(n1)); } 例5.2用数组Fibonacci数列 #include #include usingnamespacestd; intmain() {inti; intf[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i2]+f[i1]; for(i=0;i<20;i++) {if(i%5==0)cout< cout< } cout< return0; } 例5.3用冒泡法对10个数排序 #include usingnamespacestd; intmain() { inta[10]; inti,j,t; cout<<"input10numbers: "< for(i=0;i<10;i++)//输入a[0]~a[9] cin>>a[i]; cout< for(j=0;j<9;j++)//共进行9趟比较 for(i=0;i<9j;i++)//在每趟中要进行(10j)次两两比较 if(a[i]>a[i+1])//如果前面的数大于后面的数 {t=a[i];a[i]=a[i+1];a[i+1]=t;}//交换两个数的位置,使小数上浮 cout<<"thesortednumbers: "< for(i=0;i<10;i++)//输出10个数 cout< cout< return0; }例5.4将二维数组行列元素互换,存到另一个数组中 a=123 56b=14 25 36 #include usingnamespacestd; intmain() {inta[2][3]={{1,2,3},{4,5,6}}; intb[3][2],i,j; cout<<"arraya:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 编程 实例