• C++高级语言程序设计实验三-中国矿业大学


    第一题

    编写具有如下原型的函数:bool f(long x);其功能为:若整数 x 仅由偶数字(0、2、4、6、8)组成时(如 x=26480),函数返回 true,否则返回 false(如当 x=22034 时)。并编制主函数对它进行调用。

    #include<iostream>
    using namespace std;
    bool f(long x){
        while(x){
            int a = x%10;
            if (a%2 == 1){
                return false;
            }
            else {
                x/=10;
            }
        }
        return true;
    }
    int main(){
        long a;
        cin>>a;
        if (f(a)==1){
            cout<<"true";
        }
        else {
            cout<<"false";
        }
    }
    

    第二题

    编写具有如下原型的函数:void find(int i, int n); 实现从 i 开始找起,连续找出 n 个素数并显示在屏幕上。输入两个整数,前一个是查找的起始数字,后一个是指定查找几个素数。

    #include<iostream>
    using namespace std;
    void find(int i, int n){
        while(n){
            int a=2;
            for (; a<i; a++){
                if (i%a==0){
                    i++;
                    break;
                }
            }
            if (a==i){
                cout<<i<<" ";
                i++;
                n--;
            }
        }
    }
    
    int main(){
        int a,b;
        cin>>a>>b;
        find(a, b);
    }
    

    第三题

    输入正整数start和end,找出从start到end这一区间段内哪一个数n的因子和最大,并将该n及其因子和maxSum作为结果输出。例如,当start=10,end=15时,所求的n应该为12,而maxSum应该为16。设计函数计算n的因子和,其中因子和为包括1但不包括n本身的所有因子之和。

    #include<iostream>
    using namespace std;
    void maxSum(int a, int b){
        int maxindex=a;
        int max=1;
        int p=a;
        while(p<=b){
            int s=0;
            for (int n=1; n<p; n++){
                if (p%n==0){
                    s+=n;
                }
            }
            if (s>max){
                maxindex=p;
                max=s;
            }
            p++;
        }
        cout<<maxindex<<" "<<max;
    }
    
    int main(){
        int start,end;
        cin>>start>>end;
        maxSum(start, end);
    }
    

    第四题

    编写具有如下原型的函数symm:bool symm(long n); 用来判断正整数n是否为“回文数”(正读与反读为大小相同的数),若是返回true,否则返false。并编写主函数,通过调用symm,求出n以内所有满足下述特征的m:m和7m以及3mm都是“回文数”,如1,11,88,…(因为m=1,7m=7,3mm=3;m=11,7m=77,3mm=363;m=88,7m=616,3mm=23232;…)

    #include<iostream>
    using namespace std;
    bool symm(long n){
        long beforereverse=n;
        long reverse=0;
        int temp=0;
        while(n){
            temp=n%10;
            reverse=reverse*10+temp;
            n/=10;
        }
        if (reverse==beforereverse){
            return true;
        }
        else {
            return false;
        }
    }
    
    int main(){
        long a;
        cin>>a;
        for (int i=1; i<=a; i++){
            if (symm(i)&&symm(7*i)&&symm(3*i*i)){
                cout<<i<<" ";
            }
        }
    }
    

    第五题

    键盘输入正整数 n,求出n与其反序数x之和并输出。例如,输入2038,n+x = 2038 +8302 =10340,输出应为10340。要求:编写函数实现数据转换成反序数值。

    #include<iostream>
    using namespace std;
    int re(int n){
        int beforereverse=n;
        int reverse=0;
        int temp=0;
        while(n){
            temp=n%10;
            reverse=reverse*10+temp;
            n/=10;
        }
        return reverse;
    }
    
    int main(){
        int a;
        cin>>a;
        cout<<a+re(a);
    }
    

  • 相关阅读:
    【转载】WinCE编译一二三
    Implement the OEM Power Management on Windows CE
    ubuntu 精简系统
    simple awk tutorial
    debian 安装备份已安装软件包
    awk 简单教程
    Unix Sed Tutorial: Advanced Sed Substitution Examples
    dos修改子文件夹所有文件文件名
    Using Intel MKL with MATLAB Matlab使用多核CPU
    [转]学校的统一订书80%该烧掉——IT推荐书单
  • 原文地址:https://www.cnblogs.com/hujunyao37201/p/14123246.html
Copyright © 2020-2023  润新知