C++作业7

来源:互联网 发布:数据库存年月 编辑:程序博客网 时间:2024/05/21 05:57

项目一:素数和回文

</pre><pre name="code" class="cpp">/*    * 文件名称:kpii    * 作    者:张宇恒       * 完成日期:2016  年  6   月  2  日      * 版 本 号:v1.0      * 对任务及求解方法的描述部分:编制2个返回值为int型的函数,用于判断参数是否为素数和回文,调用函数回答以下问题(请包括在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)* 问题描述:求素数,回文数,回文素数。   * 程序输出:素数,回文数,回文素数   * 问题分析:判断素数,回文数,回文素数   * 算法设计:略   */      #include<iostream>using namespace std;int isprimer(int i){int n=0;for(int j=1;j<=i;j++)if(i%j==0)n++;if(n==2)return 1;elsereturn 0;}int ispalindrome(int n){int t,s,a,b;if(n<10)return 1;if(n<100&&n>9){t=n/10;s=n%10;if(t==s)return 1;elsereturn 0;}if(n<1000&&n>99){a=n/100;b=n%10;if(a==b)return 1;elsereturn 0;}}void main(){int n,m,k=0,f,q=0,a[100],b[100];cin>>n;cout<<"素数是:"<<endl;for(int i=1;i<n;i++){m=isprimer(i);if(m==1){cout<<i<<" ";cout<<"\t";b[k]=i;k++;if(k%7==0)cout<<endl;f=ispalindrome(i);if(f==1){a[q]=i;q++;}}}cout<<endl;cout<<"回文数是:"<<endl;int g=0;for(int j=0;j<n;j++){f=ispalindrome(j);if(f==1){cout<<j<<" ";cout<<"\t";g++;if(g%7==0)cout<<endl;}}cout<<endl;cout<<"回文素数是:"<<endl;int h=0;for(i=0;i<q;i++){cout<<a[i]<<" ";cout<<"\t";h++;if(h%7==0)cout<<endl;}cout<<endl;cout<<"逆素数是:"<<endl;int e,p,c,d;for(i=0;i<k;i++){if(b[i]<10)cout<<b[i]<<"\t";if(b[i]<100&&b[i]>9){e=b[i]/10;p=b[i]%10;c=10*p+e;for(j=0;j<k;j++){if(c==b[j])cout<<b[i]<<"\t";}}if(b[i]>99){e=b[i]/100;p=b[i]/10-10*e;c=b[i]%10;d=100*c+10*p+e;if(isprimer(d)==1)cout<<b[i]<<"\t";}}}


项目2:最大公约和和最小公倍数


/*    * 文件名称:kpii    * 作    者:张宇恒       * 完成日期:2016  年  6   月  2  日      * 版 本 号:v1.0      * 对任务及求解方法的描述部分:从键盘中输入两个整数,求这两个整数的最大公约数和最小公倍数,最大公约数采用的算法是辗转相除法(具体算法可用百度)。其中编写自定义函数实现求最大公约数和最小公倍数* 问题描述:求最大公约数和最小公倍数;   * 程序输出:最大公约数和最小公倍数  * 问题分析:略   * 算法设计:略   */      #include<iostream>using namespace std;int f(int m,int n){int t;if(m<n){f(n,m);}else{while(n!=0){t=m%n;m=n;n=t;}return m;}}void main(){int a,b,c,d;cout<<"输入两个整数a,b:";cin>>a>>b;c=f(a,b);d=a*b/c;cout<<"最大公约数"<<c<<endl;cout<<"最小公倍数"<<d<<endl;}





0 0
原创粉丝点击