c++作业7

来源:互联网 发布:单片机开发待遇 编辑:程序博客网 时间:2024/06/06 12:52

一、素数和回文

编制2个返回值为int型的函数,用于判断参数是否为素数和回文,调用函数回答以下问题(请包括在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)

#include <iostream>using namespace std;int isPrimer(int n)//判断是否为素数{    int i=2;    for(i=2;i<n;i++)    {if(n%i==0) break;}    if(n==i) return 1;    else return 0;}int isPalindrome(int n)//判断是否为回文{    int a=0;    while(n){a=a*10+n%10;     n/=10;}return a;}int main(){    int x,y,z,i,j=0,k=0,l=0,m=0;int a[80],b[80],c[80],d[80];for(i=2;i<=300;i++){x=isPrimer(i);y=isPalindrome(i);z=isPrimer(y);if(x==1)    {a[j]=i;j++;}//将素数放入a数组if(y==i)    {b[k]=i;k++;}//将回文数放入b数组if(x==1&&y==i)    {c[l]=i;l++;}//将回文素数放入c数组if(x==1&&z==1)    {d[m]=i;m++;}//将可逆素数放入d数组    }    cout<<"300以内的所有素数:"<<'\n';    for(i=0;i<j;i++)    cout<<a[i]<<" ";    cout<<endl;    cout<<"300以内的所有回文数:"<<'\n';    for(i=0;i<k;i++)    cout<<b[i]<<" ";    cout<<endl;    cout<<"300以内的所有回文素数:"<<'\n';    for(i=0;i<l;i++)    cout<<c[i]<<" ";    cout<<endl;    cout<<"300以内的所有可逆素数:"<<'\n';    for(i=0;i<m;i++)    cout<<d[i]<<" ";    cout<<endl;}
二、特殊三位数
请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。

#include <iostream>using namespace std;double fa(int n){    double m=1;    for(int i=1;i<=n;i++)    m*=i;    return m;}int main(){    int i,a,b,c;cout<<"三位数中所有满足条件n=a!+b!+c!的三位数有:";for(i=100;i<1000;i++){a=i/100;b=i/10%10;c=i%10;if(i==fa(a)+fa(b)+fa(c))        cout<<i<<" ";}cout<<endl;return 0;}



0 0
原创粉丝点击