计算机二级C++ 常用代码程序.docx
- 文档编号:6534747
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:31
- 大小:21.42KB
计算机二级C++ 常用代码程序.docx
《计算机二级C++ 常用代码程序.docx》由会员分享,可在线阅读,更多相关《计算机二级C++ 常用代码程序.docx(31页珍藏版)》请在冰豆网上搜索。
计算机二级C++常用代码程序
关于数的常用算法
1.求n!
#include
voidmain()
{
inti,s=1;
intn;
cin>>n;
for(i=1;i<=n;i++)
s*=i;
cout< ="< } [补]求1! +2! +…+n! (要点: 有一部步初始化为一) #include voidmain() { ints=0,i,j,t; intn; cin>>n; for(i=1;i<=n;i++) {t=1; for(j=1;j<=i;j++) t=t*j; s+=t; } cout<<"1! +2! +....+"< ="< } 或者方法二: #include voidmain() { ints=0,j,t=1; intn; cout<<"1! +2! +...+n! ="< cin>>n; for(j=1;j<=n;j++) {t=t*j; s+=t; } cout<<"1! +2! +....+"< ="< } 2.判断一个数是否是素数 #include voidmain() { intx; cin>>x; inti; for(i=2;i<=x-1;i++) If(x%i==0)break; if(i==x) cout< "< elsecout< "< } [补]求所有二位素数 #include voidmain() { inti,t=0; for(i=1;i<100;i++) { for(intj=2;j<=i-1;j++) if(i%j==0)break; if(j==i) { t++;cout< if(t%5==0)cout< } } cout< } 3.判断一个数是否是回文数 (1)#include voidmain() {inta,s=0,x,b;cin>>a; x=a; while(x! =0) {b=x%10; s=s*10+b; x/=10; } if(s==a)cout< elsecout< } (2,只针对4位数)#include voidmain() {intx,a[4],i=0,a; cin>>x;a=x; while(x>0) { a[i++]=x%10; x=x/10; } for(i=0;i<2;i++) if(a[i]! =a[3-i])break; if(i==2) cout< "< else cout< "< } #include voidhuiwen(inta[],intx) {intj=0; while(x>0) { a[j++]=x%10; x=x/10; } } voidmain() {intx,a[4],i=0; cin>>x; huiwen(a,x); for(i=0;i<2;i++) if(a[i]! =a[3-i])break; if(i==2) cout< "< else cout< "< } [补]求1000~1500之间所有的回文数 #include voidmain() { intx,a[4],i,t; for(i=1000;i<1500;i++) { t=i; intj=0; while(t>0) { a[j++]=t%10; t=t/10; } intk; for(k=0;k<2;k++) if(a[k]! =a[3-k])break; if(k==2) cout< } cout< } #include voidmain() {ints,b,x; for(inti=10;i<1000;i++) {x=i;s=0; while(x! =0) {b=x%10; s=s*10+b; x/=10; } if(i==s) cout< } } 4.判断一个数是否是完数: 所谓完数指的是它所有因子之和等于这个数本身 #include voidmain() { intn; cout<<”n=”; cin>>n; intt=1; for(inti=2;i if(n%i==0)t=t+i; if(n==t)cout< "< elsecout< "< } [补]求所有二位整数中所有的完数 #include voidmain() { intn,k=0; for(n=10;n<100;n++) { intt=1; for(inti=2;i if(n%i==0)t=t+i; if(n==t) { k++;cout< if(k%5==0)cout< } } cout< } 5.求a+aa+aaa+aaaa+aa…aaaa,其中a及其个数由用户决定。 #include voidmain() { inta,n,s=0; cin>>a>>n; inti; intt=0; for(i=1;i<=n;i++) { t=t*10+a; s+=t; } cout<<"s="< } 6.求1,1,2,3,5,8,13,21…(FB数列) #include voidmain() { inta=1,b=1,c; inti; cout< for(i=1;i<=10;i++) { c=a+b; cout< a=b; b=c;//交换后进行下面的运算 } cout< } 7.求4位整数的逆序数(求任何整数的逆序数) #include voidmain() { inta[4],n; cin>>n; inti=0,n1=n; while(n1>0) { a[i++]=n1%10; n1=n1/10; } n1=0; for(i=0;i<4;i++) n1=n1*10+a[i]; cout< "< } 8.牛顿迭代法求方程的根 #include #include voidmain(void) { floatx0,x1,a; cout<<"输入一个正数: "; cin>>a; if(a<0)cout<<"不能开平方! \n"; else { x1=a/2; do { x0=x1; x1=(x1+a/x0)/2; }while(fabs(x1-x0)>1e-5); cout< } } 9.输入一些数,求奇数和偶数之和,及奇数和偶数的个数,还有总和; #include voidmain() { inti=1,s=0,t=0,y; intx; intq1=0,q2=0; cout<<"输入6个整数"< while(i<=6) { cin>>x; if(x%2==0) {q1+=x;s++; } else {q2+=x;t++; } i++; y=q1+q2; } cout<<"奇数的和="< cout<<"偶数的和="< cout<<"所有数的总和"< }10.求水仙花数 #include voidmain() { inti,j,k; intt1,t2; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) { t1=i*i*i+j*j*j+k*k*k; t2=i*100+j*10+k; if(t1==t2)cout< } cout< } 或者: #include voidmain() { inti; inta,b,c; intt; for(i=100;i<1000;i++) { a=i/100; b=i%100/10; c=i%10; t=c*c*c+b*b*b+a*a*a; if(i==t)cout< } } 一维数组的应用 1.二分法查询某个数 #include classA { inta[10]; intx; intk;//需要查找的数所在数组a的下标 public: voidf1(intaa[],intxx) {//初始化成员数据a和x inti; for(i=0;i<10;i++) a[i]=aa[i]; x=xx; } voidf2() { intleft=0,right=9;//分别表示左边和右边数组元素的下标 intmid,flag=0;//flag表示找到的一种状态,mid表示中间位置数组的下标 while(left<=right) { mid=(left+right)/2; if(a[mid]==x) { flag=1; break; } elseif(a[mid]>x)right=mid-1; else left=mid+1; } if(flag==1)k=mid; elsek=0; } voidf3() { inti; for(i=0;i<10;i++) { cout< if((i+1)%5==0)cout< } if(k==0) cout< "< else cout< "< } }; voidmain() { intb[10]={1,2,3,4,5,6,7,8,9,10},xxx; cout<<"请输入要查找的数: "; cin>>xxx; Aa1; a1.f1(b,xxx); a1.f2(); a1.f3(); } 2.改进的选择排序法 #include classB { inta[10]; public: voidf1(intbb[]) {//初始化成员数据a数组 inti; for(i=0;i<10;i++) a[i]=bb[i]; } voidf2() {//对数组a进行升序排列 inti,j,t,k; for(i=0;i<9;i++) { k=i;//注意: 这是和原来的选择排序法不一致之处 for(j=i+1;j<10;j++) if(a[j] if(k! =i) {//注意: 这是和原来的选择排序法不一致之处 t=a[i];a[i]=a[k];a[k]=t; } } } voidf3() {//每行输出数组a的5个元素 inti; for(i=0;i<10;i++) { cout< if((i+1)%5==0)cout< } } };//此行分号不可缺省 voidmain() { intaa[10]={8,2,7,10,16,0,3,20,1,30}; Bb1; b1.f1(aa);//注意实参的书写形式 b1.f2(); b1.f3(); } 3.将数插入到一个已经排序好的数组中 #include classA { inta[100]; intm;//存放实际元素的个数 public: voidf1(intaa[],intn) { inti; for(i=0;i a[i]=aa[i]; m=n;//没插入之前a实际元素个数为5 } voidf2(intx) { inti=0,k; while(a[i] if(a[i]>=x) {//该条件结合上一条注释语句的说明,插入点在中间或最前面一个元素之前 for(k=m-1;k>=i;k--) a[k+1]=a[k]; a[i]=x; } else//说明要插入的数比原数组最后一个数还要大,即插入点在最后 a[m]=x; m++;//插入后,数组a的实际元素要多一个 } voidf3() {//将新数组输出 inti; cout<<"新数组为: "< for(i=0;i cout< cout< } }; voidmain() { intaaa[5]={1,3,5,7,9}; inti,xx; cout<<"原数组为: "< for(i=0;i<5;i++)//输出主要用于插入前和插入后的对比 cout< cout< cout<<"请输入需要插入的数: "; cin>>xx; Aa1; a1.f1(aaa,5); a1.f2(xx);//需要插入的数通过实参传递给形参 a1.f3(); } 4.两个数组合并成一个新数组 5.冒泡排序法 #include classA { inta[10]; public: voidf1(intaa[]) {//该函数的作用是将成员数据a的每个元素赋值(即初始化数组a)将形参数组aa赋值给成员数据a inti;//函数体中需要使用的全部变量的说明语句建议大家写在这里 for(i=0;i<10;i++)//利用循环给成员数据a的每个元素赋值 a[i]=aa[i];//注意赋值语句顺序不可颠倒 } voidf2() {//该函数的作用是把成员数据a的10个数进行升序排列 inti,j,t;//此时不可重新定义a数组,因为a数组已经存在并已有元素值 for(i=0;i<9;i++)//比较几轮 for(j=0;j<9-i;j++)//每一轮比较的次数 if(a[j]>a[j+1]) {//注意这里应该写大于而不是小于 t=a[j];a[j]=a[j+1];a[j+1]=t;//交换a[j]和a[j+1]两个元素,保证小的元素在前 } } voidf3() {//将排好序的数组a输出 inti; for(i=0;i<10;i++) { cout< if((i+1)%5==0)cout<<'\n';//控制一行输出5个元素,因为i从0开始,所以此行应写成i+1 } } };//此行的分号不可缺少 voidmain() { intb[]={2,1,5,0,6,10,9,8,12,3}; Aa1; a1.f1(b);//不能写成a1.f1(b[10]),也不能写成a1.f1(b[]) a1.f2();//调用无参的成员函数一定要注意后面的括号不能缺省 a1.f3(); } 6.选择排序法 #include classB { inta[10]; public: voidf1(intbb[]) {//初始化成员数据a数组 inti; for(i=0;i<10;i++) a[i]=bb[i]; } voidf2() {//对数组a进行升序排列 inti,j,t; for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;} } voidf3() {//每行输出数组a的5个元素 inti; for(i=0;i<10;i++) { cout< if((i+1)%5==0)cout< } } };//此行分号不可缺省 voidmain() { intaa[10]={8,2,7,10,16,0,3,20,1,30}; Bb1; b1.f1(aa);//注意实参的书写形式 b1.f2(); b1.f3(); } 7.直接查找法 #include classA { inta[10]; intx; intk;//需要查找的数所在数组a的下标 public: voidf1(intaa[],intxx) {//初始化成员数据a和x inti; for(i=0;i<10;i++) a[i]=aa[i]; x=xx; } voidf2() { inti; for(i=0;i<10;i++) if(a[i]==x)break; if(i==10) k=0; else k=i; } voidf3() { inti; for(i=0;i<10;i++) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机二级C+ 常用代码程序 计算机 二级 C+ 常用 代码 程序