c++作业7

来源:互联网 发布:南航网络教学平台 编辑:程序博客网 时间:2024/06/06 04:45
项目3:特殊三位数:输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。
#include<iostream>  using namespace std;  int fact(int);  int main()  {      int cba,c,b,a,sum;      cba=100;      while(cba<1000)      {          a=cba%10;          b=(cba/10)%10;          c=cba/100;          sum=fact(a)+fact(b)+fact(c);          if(sum==cba)              cout<<cba<<"  ";          ++cba;      }      return 0;  }    int fact(int k)  {      int l, f=1;      for(l=1; l<=k; ++l)          f=f*l;      return f;  }  



二、项目1:素数和回文:编制2个返回值为int型的函数,用于判断参数是否为素数和回文,调用函数回答以下问题

(1)输出300以内的所有素数。
(2)输出300以内的所有回文数。
(3)输出300以内的所有回文素数。

(4)若一个素数的反序数仍为素数,则称它为可逆素数。求300以内的所有可逆素数。

#include<iostream>  #include<cmath>  using namespace std;  bool isPalindrome(int);int reverse(int);  bool isPrime(int);  int main()  {      int m;      cout<<"(1)输出300以内的所有素数"<<endl;      for(m=2;m<300;++m)      {          if(isPrime(m))              cout<<m<<'\t';      }      cout<<endl<<endl;      cout<<"(2)输出300以内的所有回文数"<<endl;      for(m=2;m<300;++m)      {          if(isPalindrome(m))              cout<<m<<'\t';      }      cout<<endl<<endl;      cout<<"(3)输出300以内的所有回文素数"<<endl;      for(m=2;m<300;++m)      {          if(isPalindrome(m)&&isPrime(m))              cout<<m<<'\t';      }      cout<<endl<<endl;      cout<<"(4)求300以内的所有可逆素数"<<endl;      for(m=2;m<300;++m)      {          if(isPrime(m)&&isPrime(reverse(m)))              cout<<m<<'\t';      }      return 0;  }    bool isPrime(int n)  {      bool prime=true;      int k=int(sqrt(n));      for(int i=2;i<=k;i++)      {          if(n%i==0)          {              prime=false;              break;          }      }      return prime;  }    bool isPalindrome(int n)  {      bool palindrome=false;    if(reverse(n)==n)          palindrome=true;      return palindrome;  }    int reverse(int x)  {      int m=0;      while(x>0)      {          m=m*10+x%10;          x=x/10;      }      return m;  }  


0 0
原创粉丝点击