C++作业7

来源:互联网 发布:illustrator软件下载 编辑:程序博客网 时间:2024/06/05 19:34

一、问题及代码

/* * 文件名称:特殊三位数.cpp * 作    者:王妍 * 完成日期:2017 年 3 月 2日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:略 * 问题描述:特殊三位数 * 程序输出: * 问题分析:略 * 算法设计:略 */#include <iostream>using namespace std;int factorial(int);int main(){    int x[3];    int i,j,a;    cout<<"所有特殊三位数:"<<endl;    for(i=100;i<1000;i++)    {        a=i;        for(j=0;j<3;j++)        {            x[j]=a%10;            a=a/10;        }        a=factorial(x[0])+factorial(x[1])+factorial(x[2]);        if(i==a)            cout<<"\t"<<i;    }    return 0;}int factorial(int a){    int i;    if(a==0)        return a;    else    {        for(i=a-1;i>0;i--)            a=a*i;        return a;    }}

二、运行结果


一、问题及代码

/* * 文件名称:素数与回文.cpp * 作    者:王妍 * 完成日期:2017 年 3 月 2日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:略 * 问题描述:素数与回文 * 程序输出: * 问题分析:略 * 算法设计:略 */#include<iostream>int isPrimer(int n){    int a,b=1;    for(a=2;a<n;a++)        if(n%a==0)        {            b=0;            break;        }    return b;}int isPalindrome(int n){    int m=n,h=0,t=1;    while(m!=0)    {        h=h*10+m%10;        m=m/10;    }    if(h!=n)        t=0;    return t;}int main(){    int i,j=0,m=0,n=0,k=0,p,r;    int a[80],b[80],c[80],d[80];    for(i=2;i<300;i++)    {        if(isPrimer(i))        {            a[j]=i;            j++;            r=i;            p=0;            while(r!=0)            {                p=p*10+r%10;                r=r/10;            }            if(isPrimer(p))            {                d[k++]=i;            }        }        if(isPalindrome(i))        {            b[m++]=i;        }        if(isPrimer(i) && isPalindrome(i))        {            c[n++]=i;        }    }    std::cout<<"300以内的所有素数有:"<<std::endl;    for(i=0;i<j;i++)    {        std::cout<<a[i]<<"\t";        if((i+1)%6==0)            std::cout<<std::endl;    }    std::cout<<std::endl<<"300以内的所有回文数有:"<<std::endl;    for(i=0;i<m;i++)    {        std::cout<<b[i]<<"\t";        if((i+1)%6==0)            std::cout<<std::endl;    }    std::cout<<std::endl<<"300以内的所有回文素数有:"<<std::endl;    for(i=0;i<n;i++)    {        std::cout<<c[i]<<"\t";        if((i+1)%6==0)            std::cout<<std::endl;    }    std::cout<<std::endl<<"300以内的所有可逆素数有:"<<std::endl;    for(i=0;i<k;i++)    {        std::cout<<d[i]<<"\t";        if((i+1)%6==0)            std::cout<<std::endl;    }    std::cout<<std::endl;    return 0;}